春季批处理 SFTP 会话身份验证失败:由以下原因引起:java.lang.IllegalState异常:连接失败



我正在尝试使用Spring Batch连接到SFTP。 我正在使用 JSch 方式使用 SFTP 发送文件。我收到以下错误:控制台日志如下:

我添加了 jsch-0.1.44.jar 文件

   Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
   INFO: Connecting to <serverName> port 22
   Apr 14, 2015 3:56:46 PM      org.springframework.integration.sftp.session.JschLogger log
INFO: Connection established
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: Remote version string: SSH-2.0-6.1.8.136 SSH Tectia Server
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: Local version string: SSH-2.0-JSCH-0.1.44
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: CheckCiphers: aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-ctr,arcfour,arcfour128,arcfour256
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: aes256-ctr is not available.
    Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: aes192-ctr is not available.
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: aes256-cbc is not available.
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: aes192-cbc is not available.
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: arcfour256 is not available.
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: SSH_MSG_KEXINIT sent
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: SSH_MSG_KEXINIT received
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: kex: server->client aes128-ctr hmac-md5 none
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: kex: client->server aes128-ctr hmac-md5 none
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: SSH_MSG_KEXDH_INIT sent
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: expecting SSH_MSG_KEXDH_REPLY
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: ssh_dss_verify: signature true
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
WARNING: Permanently added '<serverName>' (DSA) to the list of known hosts.
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: SSH_MSG_NEWKEYS sent
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: SSH_MSG_NEWKEYS received
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: SSH_MSG_SERVICE_REQUEST sent
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: SSH_MSG_SERVICE_ACCEPT received
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: Authentications that can continue: gssapi-with-mic,publickey,keyboard-interactive,password
Apr 14, 2015 3:56:46 PM org.springframework.integration.sftp.session.JschLogger log
INFO: Next authentication method: gssapi-with-mic
Apr 14, 2015 3:56:47 PM org.springframework.integration.sftp.session.JschLogger log
INFO: Authentications that can continue: publickey,keyboard-interactive,password
Apr 14, 2015 3:56:47 PM org.springframework.integration.sftp.session.JschLogger log
INFO: Next authentication method: publickey
Apr 14, 2015 3:56:47 PM org.springframework.integration.sftp.session.JschLogger log
INFO: Authentications that can continue: keyboard-interactive,password
Apr 14, 2015 3:56:47 PM org.springframework.integration.sftp.session.JschLogger log
INFO: Next authentication method: keyboard-interactive
Apr 14, 2015 3:56:49 PM org.springframework.integration.sftp.session.JschLogger log
INFO: Authentications that can continue: password
Apr 14, 2015 3:56:49 PM org.springframework.integration.sftp.session.JschLogger log
INFO: Next authentication method: password
Apr 14, 2015 3:56:49 PM org.springframework.integration.sftp.session.JschLogger log
INFO: Disconnecting from <serverName> port 22
Could not send file per SFTP: org.springframework.integration.MessagingException: Failed to execute on session
org.springframework.integration.MessagingException: Failed to execute on session
    at org.springframework.integration.file.remote.RemoteFileTemplate.execute(RemoteFileTemplate.java:306)
    at org.springframework.integration.file.remote.RemoteFileTemplate.send(RemoteFileTemplate.java:190)
    at org.springframework.integration.file.remote.RemoteFileTemplate.send(RemoteFileTemplate.java:182)
    at org.springframework.integration.file.remote.handler.FileTransferringMessageHandler.handleMessageInternal(FileTransferringMessageHandler.java:112)
    at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:73)
    at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:115)
    at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:102)
    at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:77)
    at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:178)
    at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:149)
    at com.sftpsample.util.SftpExample.execute(SftpExample.java:32)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at com.sun.proxy.$Proxy9.execute(Unknown Source)
    at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:406)
    at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:330)
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:131)
    at org.springframework.batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:271)
    at org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:77)
    at org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:368)
    at org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:215)
    at org.springframework.batch.repeat.support.RepeatTemplate.iterate(RepeatTemplate.java:144)
    at org.springframework.batch.core.step.tasklet.TaskletStep.doExecute(TaskletStep.java:257)
    at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:198)
    at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:148)
    at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:64)
    at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:67)
    at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:165)
    at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:144)
    at org.springframework.batch.core.job.flow.FlowJob.doExecute(FlowJob.java:134)
    at org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:304)
    at org.springframework.batch.core.launch.support.SimpleJobLauncher$1.run(SimpleJobLauncher.java:135)
    at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
    at org.springframework.batch.core.launch.support.SimpleJobLauncher.run(SimpleJobLauncher.java:128)
    at com.sftpsample.main.MainApp.main(MainApp.java:143)
Caused by: java.lang.IllegalStateException: failed to create SFTP Session
    at org.springframework.integration.sftp.session.DefaultSftpSessionFactory.getSession(DefaultSftpSessionFactory.java:321)
    at org.springframework.integration.file.remote.RemoteFileTemplate.execute(RemoteFileTemplate.java:295)
    ... 43 more
Caused by: java.lang.IllegalStateException: failed to connect
    at org.springframework.integration.sftp.session.SftpSession.connect(SftpSession.java:250)
    at org.springframework.integration.sftp.session.DefaultSftpSessionFactory.getSession(DefaultSftpSessionFactory.java:316)
    ... 44 more
   Caused by: com.jcraft.jsch.JSchException: Auth fail
    at com.jcraft.jsch.Session.connect(Session.java:461)
    at com.jcraft.jsch.Session.connect(Session.java:154)
    at       org.springframework.integration.sftp.session.SftpSession.connect(SftpSession.java:241)
    ... 45 more

有人可以让我知道可能出了什么问题吗?

问题已解决。我使用的批处理ID,相同的密码被锁定,因此身份验证失败。密码解锁后,程序工作正常。

相关内容

最新更新