1. 背景
EDI的测试环境最近经常有开发返回SFTP报错,堆栈如下:
Caused by: org.apache.camel.component.file.GenericFileOperationFailedException: Cannot connect to edisftp://xxxx@116.196.***.*** 22
at org.apache.camel.component.file.remote.SftpOperations.connect(SftpOperations.java:149)
at com.jd.lsb.edi.component.sftp.EdiSftpOperations.connect(EdiSftpOperations.java:39)
at com.jd.lsb.edi.component.sftp.CustomerRemoteFileProducer.connectIfNecessary(CustomerRemoteFileProducer.java:218)
at com.jd.lsb.edi.component.sftp.CustomerRemoteFileProducer.recoverableConnectIfNecessary(CustomerRemoteFileProducer.java:210)
at com.jd.lsb.edi.component.sftp.CustomerRemoteFileProducer.preWriteCheck(CustomerRemoteFileProducer.java:137)
at org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:114)
at com.jd.lsb.edi.component.sftp.CustomerRemoteFileProducer.process(CustomerRemoteFileProducer.java:62)
at com.jd.lsb.edi.component.sftp.EdiSftpEndpoint$1.process(EdiSftpEndpoint.java:73)
at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:178)
at org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:445)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:173)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
... 56 more
Caused by: com.jcraft.jsch.JSchException: Session.connect: java.net.SocketException: Connection reset
at com.jcraft.jsch.Session.connect(Session.java:504)
at org.apache.camel.component.file.remote.SftpOperations.connect(SftpOperations.java:121)
... 68 more
2. 解决方案
执行命令telnet ip port
。
1)若连接正常
会输出
SSH-2.0-OpenSSH_6.6.1
类似的SSH信息
Trying 192.168.xxx.xxx...
Connected to 192.168.xxx.xxx.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.6.1
Note:
j-one平台工具中的telnet,即使连接成功后也会自动断开(通过堡垒机可保持连接),类似如下:
Trying 192.168.xxx.xxx...
Connected to 192.168.xxx.xxx.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.6.1
Connection closed by foreign host.
2)若连接异常:
Trying 192.168.xxx.xxx...
telnet: connect to address 192.168.xxx.xxx: Connection refused
或
Trying 192.168.xxx.xxx...
Connected to 192.168.xxx.xxx.
Escape character is '^]'.
Connection closed by foreign host.
网友评论