通过 SSH 信任使用 DefaultSftpSessionFactory 的 SFTP 抛出异常
SFTP with DefaultSftpSessionFactory by SSH trust throws exception
我需要 download/upload 来自 SFTP 服务器的所有 txt 文件。
我正在使用 Spring 配置作为 org.springframework.integration.sftp.session.DefaultSftpSessionFactory
和入境
它的投掷 ServletContext resource not found
。
此处密码为空
<bean id="acceptAllFileListFilter" class="org.springframework.integration.file.filters.AcceptAllFileListFilter" />
<bean id="inboundSftpSessionFactory" class="org.springframework.integration.file.remote.session.CachingSessionFactory">
<constructor-arg ref="inboundDefaultSftpSessionFactory" />
</bean>
<bean id="inboundDefaultSftpSessionFactory" class="org.springframework.integration.sftp.session.DefaultSftpSessionFactory">
<property name="host" value="${sftp.host}" />
<property name="privateKey" value="/home/tech/id_rsa"/>
<property name="privateKeyPassphrase" value="${sftp.private.key.passphrase}"/>
<property name="port" value="${sftp.port}" />
<property name="user" value="${sftp.user}" />
<property name="password" value="${sftp.password}" />
</bean>
.....
Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/home/tech/id_rsa]
at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:141)
at org.springframework.integration.sftp.session.DefaultSftpSessionFactory.initJschSession(DefaultSftpSessionFactory.java:371)
at org.springframework.integration.sftp.session.DefaultSftpSessionFactory.getSession(DefaultSftpSessionFactory.java:347)
... 27 more
文件存在于指定位置
当我尝试使用密码配置时,它工作正常。
文件不在指定位置,因为它试图从应用程序的根目录加载文件,但文件不在指定位置。它位于文件系统上,但不是您指定的。
在 属性 值前加上 file:
前缀。
<bean id="inboundDefaultSftpSessionFactory" class="org.springframework.integration.sftp.session.DefaultSftpSessionFactory">
<property name="host" value="${sftp.host}" />
<property name="privateKey" value="file:/home/tech/id_rsa"/>
<property name="privateKeyPassphrase" value="${sftp.private.key.passphrase}"/>
<property name="port" value="${sftp.port}" />
<property name="user" value="${sftp.user}" />
<property name="password" value="${sftp.password}" />
</bean>
有关 resource loading 的详细信息,请参阅参考指南。
我需要 download/upload 来自 SFTP 服务器的所有 txt 文件。
我正在使用 Spring 配置作为 org.springframework.integration.sftp.session.DefaultSftpSessionFactory
和入境
它的投掷 ServletContext resource not found
。
此处密码为空
<bean id="acceptAllFileListFilter" class="org.springframework.integration.file.filters.AcceptAllFileListFilter" />
<bean id="inboundSftpSessionFactory" class="org.springframework.integration.file.remote.session.CachingSessionFactory">
<constructor-arg ref="inboundDefaultSftpSessionFactory" />
</bean>
<bean id="inboundDefaultSftpSessionFactory" class="org.springframework.integration.sftp.session.DefaultSftpSessionFactory">
<property name="host" value="${sftp.host}" />
<property name="privateKey" value="/home/tech/id_rsa"/>
<property name="privateKeyPassphrase" value="${sftp.private.key.passphrase}"/>
<property name="port" value="${sftp.port}" />
<property name="user" value="${sftp.user}" />
<property name="password" value="${sftp.password}" />
</bean>
.....
Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/home/tech/id_rsa]
at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:141)
at org.springframework.integration.sftp.session.DefaultSftpSessionFactory.initJschSession(DefaultSftpSessionFactory.java:371)
at org.springframework.integration.sftp.session.DefaultSftpSessionFactory.getSession(DefaultSftpSessionFactory.java:347)
... 27 more
文件存在于指定位置
当我尝试使用密码配置时,它工作正常。
文件不在指定位置,因为它试图从应用程序的根目录加载文件,但文件不在指定位置。它位于文件系统上,但不是您指定的。
在 属性 值前加上 file:
前缀。
<bean id="inboundDefaultSftpSessionFactory" class="org.springframework.integration.sftp.session.DefaultSftpSessionFactory">
<property name="host" value="${sftp.host}" />
<property name="privateKey" value="file:/home/tech/id_rsa"/>
<property name="privateKeyPassphrase" value="${sftp.private.key.passphrase}"/>
<property name="port" value="${sftp.port}" />
<property name="user" value="${sftp.user}" />
<property name="password" value="${sftp.password}" />
</bean>
有关 resource loading 的详细信息,请参阅参考指南。