2016-10-29 5 views
3

プロキシサービスを作成し、WSO2 ESB 5にデプロイしてhttp経由でファイルコンテンツを受信し、vfsトランスポートを使用してそのコンテンツをftpサーバーに転送しました。このサービスは、接続パラメータを正しく指定すると期待どおりに動作しますが、ダウンストリームサーバをシミュレートするために接続文字列に何かを指定すると、[1]で指定されたパラメータを使用してVFSトランスポートの動作を制御できません。私が探しているのは、VFSで発生したエラーとAxisで捕捉したフォルトの例外の間の遅延を短くすることです。WSO2 VFS FTPプロキシでパラメータが読み取られない

リトライ回数を0回、再試行間隔を0回と指定していますが、VFSTransportSenderクラスは何度も同じ値を読み込めないようですが、同じ回数の再試行を繰り返し、それが実行されるたびに同じ秒数、私は値を変更し、他のものを置くが、結果は常に同じです、サーバは、Axisが可能になる前に、最初の要求の他に、エラーに関するいくつかの情報を受け取ります。

<?xml version="1.0" encoding="UTF-8"?> 
<proxy xmlns="http://ws.apache.org/ns/synapse" 
     name="ftpProxy" 
     startOnLoad="true" 
     statistics="disable" 
     trace="disable" 
     transports="https,http"> 
    <target> 
    <inSequence> 
    <log level="full"/> 
    <property expression="json-eval($.key)" name="file_name"/> 
    <property name="OUT_ONLY" value="true"/> 
    <property name="FORCE_SC_ACCEPTED" scope="axis2" value="true"/> 
    <property name="HTTP_SC" scope="axis2" value="200"/> 
    <property expression="fn:concat(get-property('file_name'), '.json')" 
       name="transport.vfs.ReplyFileName" 
       scope="transport"/> 
    <property name="OUT_ONLY" value="true"/> 
    </inSequence> 
    <endpoint name="ftp_endpoint"> 
    <address uri="vfs:ftp://jairof_ftp:[email protected]:21"> 
     <timeout> 
      <duration>2000</duration> 
      <responseAction>fault</responseAction> 
     </timeout> 
     <suspendOnFailure> 
      <errorCodes>-1</errorCodes> 
      <progressionFactor>1.0</progressionFactor> 
     </suspendOnFailure> 
     <markForSuspension> 
      <errorCodes>-1</errorCodes> 
     </markForSuspension> 
    </address> 
    </endpoint> 
    </target> 
    <parameter name="transport.vfs.ReconnectTimeout">0</parameter> 
    <parameter name="transport.vfs.MaxRetryCount">0</parameter> 
    <description/> 
</proxy> 

そして、私は、サーバーをシミュレートしたい場合、私はちょうどアドレスURIを変更到達できないと私は、ユーザーが誤っているこのいずれかに置く:ここ

は問題なく動作します私のプロキシサービスであります:

<address uri="vfs:ftp://ja8irof_ftp:[email protected]:21">

私はまた、エンドポイントを呼び出す前に、プロパティとしてtransport.vfsパラメータを設定しようとしたが、結果は

012まったく同じです

ここでは、私はポストシンプルに保つためにスタックトレースの一部をカットし、ログファイルの一部で調べることができます。

[2016-10-29 12:23:01,134] ERROR - VFSTransportSender cannot resolve replyFile 
org.apache.commons.vfs2.FileSystemException: Could not connect to FTP server on "localhost". 
... (the rest of stack trace) 
... 
Caused by: org.apache.commons.vfs2.FileSystemException: Could not login to FTP server on "localhost" as user "ja8irof_ftp". 
at org.apache.commons.vfs2.provider.ftp.FtpClientFactory.createConnection(FtpClientFactory.java:210) 
... 29 more 

[2016-10-29 12:23:34,223] ERROR - VFSTransportSender cannot resolve replyFile 
org.apache.commons.vfs2.FileSystemException: Could not connect to FTP server on "localhost". 
... (the rest of stack trace) 
... 
Caused by: org.apache.commons.vfs2.FileSystemException: Could not login to FTP server on "localhost" as user "ja8irof_ftp". 
at org.apache.commons.vfs2.provider.ftp.FtpClientFactory.createConnection(FtpClientFactory.java:210) 
... 29 more 

[2016-10-29 12:24:07,842] ERROR - VFSTransportSender cannot resolve replyFile 
org.apache.commons.vfs2.FileSystemException: Could not connect to FTP server on "localhost". 
... (the rest of stack trace) 
... 
Caused by: org.apache.commons.vfs2.FileSystemException: Could not login to FTP server on "localhost" as user "ja8irof_ftp". 
at org.apache.commons.vfs2.provider.ftp.FtpClientFactory.createConnection(FtpClientFactory.java:210) 
... 29 more 

[2016-10-29 12:24:07,844] ERROR - VFSTransportSender cannot resolve replyFile repeatedly: Could not connect to FTP server on "localhost". 
org.apache.commons.vfs2.FileSystemException: Could not connect to FTP server on "localhost".   
... (the rest of stack trace) 
... 
Caused by: org.apache.commons.vfs2.FileSystemException: Could not login to FTP server on "localhost" as user "ja8irof_ftp". 
at org.apache.commons.vfs2.provider.ftp.FtpClientFactory.createConnection(FtpClientFactory.java:210) 
... 29 more 

[2016-10-29 12:24:07,846] ERROR - Axis2Sender Unexpected error during sending message out 
org.apache.axis2.AxisFault: cannot resolve replyFile repeatedly: Could not connect to FTP server on "localhost". 
... (the rest of stack trace) 
... 
Caused by: org.apache.commons.vfs2.FileSystemException: Could not connect to FTP server on "localhost". 
at org.apache.commons.vfs2.provider.ftp.FtpClientFactory.createConnection(FtpClientFactory.java:275) 
at org.apache.commons.vfs2.provider.ftp.FTPClientWrapper.createClient(FTPClientWrapper.java:100) 
at org.apache.commons.vfs2.provider.ftp.FTPClientWrapper.getFtpClient(FTPClientWrapper.java:134) 
at org.apache.commons.vfs2.provider.ftp.FTPClientWrapper.<init>(FTPClientWrapper.java:59) 
at org.apache.commons.vfs2.provider.ftp.FtpFileProvider.doCreateFileSystem(FtpFileProvider.java:128) 
at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.getFileSystem(AbstractOriginatingFileProvider.java:155) 
at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:119) 
at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:88) 
at org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:738) 
at org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:626) 
at org.apache.synapse.transport.vfs.VFSTransportSender.writeFile(VFSTransportSender.java:233) 
... 19 more 
Caused by: org.apache.commons.vfs2.FileSystemException: Could not login to FTP server on "localhost" as user "ja8irof_ftp". 
at org.apache.commons.vfs2.provider.ftp.FtpClientFactory.createConnection(FtpClientFactory.java:210) 
... 29 more  

私に任意のコメント、提案を送ってくださいを...私はそんなにいただければ幸いです、ありがとうあなたの時間のために事前に。

[1]のように、エンドポイントのURLにパラメータを追加するhttps://docs.wso2.com/display/ESB500/VFS+Transport

答えて

2

してみてください。

<address uri="vfs:ftp://ja8irof_ftp:[email protected]:21?transport.vfs.MaxRetryCount=0&amp;transport.vfs.ReconnectTimeout=0"/> 
+0

これは問題を解決しました。ありがとうございます。他のアプローチがなぜ機能していないのか知っていますか? –

+0

@ JairoFERNANDEZこれは、パラメータを設定するとvfsトランスポートリスナー用であり、vfsトランスポート送信側用ではないためです。移送送信者の場合は、この回答のパラメータを設定する必要があります –

+0

コメントありがとうございます。Riyafa、十分な情報があるのは常に良いことです。今私は問題とパラメータの使い方をよく理解しています。 –

関連する問題