1. 背景
EDI的測(cè)試環(huán)境最近經(jīng)常有開(kāi)發(fā)返回SFTP報(bào)錯(cuò)灾杰,堆棧如下:
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. 解決方案
執(zhí)行命令telnet ip port
匈棘。
1)若連接正常
會(huì)輸出
SSH-2.0-OpenSSH_6.6.1
類(lèi)似的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平臺(tái)工具中的telnet,即使連接成功后也會(huì)自動(dòng)斷開(kāi)(通過(guò)堡壘機(jī)可保持連接)耸采,類(lèi)似如下:
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.