问题标签 [spring-integration-sftp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
73 浏览

java - spring-integration 中的 Windows 密钥身份验证

我有一台 Windows 服务器,我需要使用sftp将文件从该服务器传输到另一台服务器。目标服务器可能是 Linux 或 windows 机器。

我的问题是,我是否必须在我的 Windows 机器上依赖第三方 sftp 服务器软件,或者 spring 集成是否会解决这个问题?

我应该如何在 windows box 上生成公钥和私钥对?

0 投票
1 回答
574 浏览

spring - SFTP:BeanPostProcessor 干扰@ServiceActivator 和@MessagingGateway

似乎 BeanPostProcessor 接口实现对@ServiceActivator 产生了影响。将 BeanPostProcessor 与 @ServiceActivator 一起使用的方式应该是什么。谢谢。

完整的日志可在此处获取日志

以下是用于 SFTP 的 Java 配置 -

我们在做 SFTP 时像这样调用网关对象

主班

其他类——

上面的代码工作正常,除非我没有在上面定义的 Java Config 中添加以下 bean 声明 -

上面的bean定义具有以下实现 -

一旦在 Java Config 中添加了任何 BeanPostProcessor 实现,它就会产生问题并且应用程序无法看到 toSftpChannel -

org.springframework.beans.factory.NoSuchBeanDefinitionException:在 org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:685) 在 org.springframework.beans.factory.support.AbstractBeanFactory 中没有名为“toSftpChannel”的 bean .getMergedLocalBeanDefinition(AbstractBeanFactory.java:1199) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202 ) 在 org.springframework.integration.support.channel.BeanFactoryChannelResolver 的 org.springframework.integration.support.channel.BeanFactoryChannelResolver.resolveDestination(BeanFactoryChannelResolver.java:88)。resolveDestination(BeanFactoryChannelResolver.java:45) at org.springframework.integration.gateway.MessagingGatewaySupport.getRequestChannel(MessagingGatewaySupport.java:327) at org.springframework.integration.gateway.MessagingGatewaySupport.send(MessagingGatewaySupport.java:368) at org.springframework .integration.gateway.GatewayProxyFactoryBean.invokeGatewayMethod(GatewayProxyFactoryBean.java:477) at org.springframework.integration.gateway.GatewayProxyFactoryBean.doInvoke(GatewayProxyFactoryBean.java:429) at org.springframework.integration.gateway.GatewayProxyFactoryBean.invoke(GatewayProxyFactoryBean.java :420) 在 org.springframework.aop.framework 的 org.springframework.integration.gateway.GatewayCompletableFutureProxyFactoryBean.invoke(GatewayCompletableFutureProxyFactoryBean.java:65)。ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) at com.sun.proxy.$Proxy57.sendToSftp(Unknown Source)

0 投票
1 回答
6978 浏览

java - Spring Integration FTP - 使用远程目录表达式创建动态目录(Java 配置)

使用 Spring Integration 的 SFTP 会话工厂(使用 Java 配置)时,我想动态设置远程 SFTP 服务器目录。Spring 文档说这是可能的:

Spring 集成 SFTP 适配器

SpEL 和 SFTP 出站适配器

与 Spring Integration 中的许多其他组件一样,您可以在配置 SFTP 出站通道适配器时从 Spring 表达式语言 (SpEL) 支持中受益,方法是指定两个属性 remote-directory-expressionremote-filename-generator-expression (见上文)。表达式评估上下文将 Message 作为其根对象,因此允许您提供可以根据 Message 中的数据(来自payloadheaders )动态计算文件名或现有目录路径的表达式。在上面的示例中,我们使用表达式值定义 属性,该表达式值根据其原始名称计算文件名,同时还附加一个后缀: - fooremote-filename-generator-expression.

但我在实现这一点时遇到了麻烦。我似乎找不到使用 Spring 的 SpEL 表达式语言的好例子。下面的代码有效,并将我的文件发送到下面的根目录,或者如果我在 LiteralExpression 中输入一个特定目录,则发送到特定目录。但我想用使用“路径”标题的 SpelExpression 替换 LiteralExpression 表达式,类似于我对动态调整正在上传的文件名的“文件”标题所做的事情。

要启动文件上传,我执行此代码

0 投票
1 回答
1108 浏览

java - SFTP Spring 集成问题 2 *username* 的身份验证失败次数过多

我们有一个 SFTP 服务器,我们在该服务器上读取文件特定文件夹。我正在使用基于用户/密码的身份验证,我是否还需要在 DefaultSftpSessionFactory 中提供一些其他属性。下面是我的配置。

它在一段时间内工作正常,但间歇性地给出以下错误。

我不确定是什么导致了这个问题。SFTP SpringIntegration 配置有什么问题吗?我还需要在 DefaultSftpSessionFactory 类中提供一些其他属性吗?或者 SFTP 服务器有什么问题吗?任何人都可以指导我解决这个问题。

0 投票
2 回答
8048 浏览

java - 在 Spring Integration 中使用 Java 配置从 SFTP 复制和移动文件

我是 Spring 集成的新手。我有这个要求,首先将文件从 /files 文件夹移动到 SFTP 位置的 /process 文件夹,然后将该文件复制到本地。建议我使用网关,并且配置必须在 java 中使用注释。我曾尝试在 stackoverflow 上寻求答案,但找不到相关内容。但是,我能够使用 @InboundChannelAdapter 并通过配置其他 bean 来复制文件。

下面是我到目前为止写的代码

配置公共类 SftpConfiguration {

}

我将不胜感激任何提示或建议。谢谢。

0 投票
1 回答
344 浏览

spring-integration - Sftp 入站通道适配器:重复消息

我想通过 sftp 将文件从两个单独的目录加载到一个本地文件夹中。所以我有两个这样的入站通道适配器:

例如,如果一个名为“test.csv”的新文件位于“remote-folder1”中,我会在日志中显示以下消息:

它看起来很奇怪,我不知道为什么每个文件有两条消息。也许我有错误的配置?有人可以解释这种行为吗?

0 投票
1 回答
267 浏览

spring-integration - 当我使用 CompositeFileListFilter 时,带有 zookeeper 的 sftp:inbound-streaming-channel-adapter 不起作用

我已经使用 sftp:inbound-streaming-channel-adapter 和 zookeeper。但它给了我异常:java.lang.ClassCastException: com.jcraft.jsch.ChannelSftp$LsEntry 不能转换为 java.io.File。我正在使用以下代码

0 投票
1 回答
445 浏览

spring-integration - 与 zookeeper 运行 spring 集成时出现异常

当我使用 Zookeeper 运行 Spring Integration SFTP 时:文件元数据放入元数据存储时面临问题。我在下面提到了代码。下面是我的配置

下面是我得到的异常跟踪。当我运行上面的程序时,我收到以下错误。

0 投票
1 回答
112 浏览

spring - 错误配置:找不到 XML 模式命名空间的 Spring NamespaceHandler

我在春季服务应用程序中遇到错误。请任何人帮助我。由于以下错误,上下文初始化失败。

错误

上下文初始化失败 rg.springframework.beans.factory.parsing.BeanDefinitionParsingException:配置问题:找不到 XML 模式命名空间的 Spring NamespaceHandler [ http://www.springframework.org/schem/integration/ftp] Spring 配置

pom.xml

0 投票
1 回答
1117 浏览

spring-boot - 如何使用 ExpressionEvaluatingRequestHandlerAdvice 移动文件

在 ExpressionEvaluatingRequestHandlerAdvice 的手册中,它明确表示,A typical use case for this advice might be with an <ftp:outbound-channel-adapter/>, perhaps to move the file to one directory if the transfer was successful, or to another directory if it fails.

但我无法弄清楚将有效负载从当前目录移动到另一个目录的表达式。

此示例只是删除或重命名文件:

如何做到这一点?

编辑

根据 Gary 的建议,这是新的尝试:

设法将表达式更改为"T(java.nio.file.Files).move(payload.path, new java.io.File(new java.io.File('sent'), payload.name).path, T(java.nio.file.StandardCopyOption).REPLACE_EXISTING)",但仍然出现错误Method move(java.lang.String,java.lang.String,java.nio.file.Standar‌​dCopyOption) cannot be found on java.nio.file.Files type

代码是,

upload方法 from被UploadGateway调用。

堆栈跟踪是,