프록시 서비스를 작성하고 WSO2 ESB 5에 배포하여 http를 통해 파일 내용을 받고 vfs 전송을 사용하여 해당 내용을 ftp 서버로 전송했습니다. 이 서비스는 연결 매개 변수를 올바르게 지정할 때 예상대로 작동하지만 서버를 시뮬레이트하기 위해 연결 문자열에 잘못된 값을 지정하면 [1]에 지정된 매개 변수를 사용하여 VFS 전송의 동작을 제어 할 수 없습니다. 내가 찾고있는 것은 VFS에서 발생한 오류와 Axis에 의해 포착 된 오류 예외 사이의 지연을 줄이는 것이다.WSO2 VFS FTP 프록시가 매개 변수를 읽지 않습니다.
아래와 같이 재시도 횟수를 0으로 지정하고 다시 시도 간격을 0으로 지정하지만 VFSTransportSender 클래스는 항상 동일한 횟수의 재 시도를 수행하기 때문에 그 값을 읽을 수없는 것으로 보입니다. 실행될 때마다 동일한 초수를 사용하여 값을 변경하고 다른 값을 넣었지만 결과는 항상 같았습니다. 서버는 Axis가 수행 할 수 있기 전에 항상 원래 요청 외에 30 초 지연으로 3 번 더 재 시도했습니다. 오류와 관련된 정보를 수신하십시오.
<?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">
나는 간단한 게시물을 유지하기 위해 스택 트레이스의 일부를 절단 위치를 로그 파일의 일부를 검사 할 수 있습니다 :
[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
이 문제가 해결되었습니다. 다른 접근법이 효과가없는 이유를 알고 있습니까? –
@ JairoFERNANDEZ 매개 변수를 설정하면 vfs 전송 수신기가 아닌 vfs 전송 수신기에 대한 것이기 때문입니다. 전송 송신자의 경우이 대답과 같은 매개 변수를 설정해야합니다. –
의견을 보내 주셔서 감사합니다. Riyafa, 충분한 정보를 얻는 것이 좋습니다. 이제 문제를 더 잘 이해하고 매개 변수를 사용하는 방법을 익혔습니다. –