问题标签 [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.
java - spring-integration 中的 Windows 密钥身份验证
我有一台 Windows 服务器,我需要使用sftp将文件从该服务器传输到另一台服务器。目标服务器可能是 Linux 或 windows 机器。
我的问题是,我是否必须在我的 Windows 机器上依赖第三方 sftp 服务器软件,或者 spring 集成是否会解决这个问题?
我应该如何在 windows box 上生成公钥和私钥对?
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)
java - Spring Integration FTP - 使用远程目录表达式创建动态目录(Java 配置)
使用 Spring Integration 的 SFTP 会话工厂(使用 Java 配置)时,我想动态设置远程 SFTP 服务器目录。Spring 文档说这是可能的:
SpEL 和 SFTP 出站适配器
与 Spring Integration 中的许多其他组件一样,您可以在配置 SFTP 出站通道适配器时从 Spring 表达式语言 (SpEL) 支持中受益,方法是指定两个属性
remote-directory-expression
和remote-filename-generator-expression
(见上文)。表达式评估上下文将 Message 作为其根对象,因此允许您提供可以根据 Message 中的数据(来自payload或headers )动态计算文件名或现有目录路径的表达式。在上面的示例中,我们使用表达式值定义 属性,该表达式值根据其原始名称计算文件名,同时还附加一个后缀: - fooremote-filename-generator-expression
.
但我在实现这一点时遇到了麻烦。我似乎找不到使用 Spring 的 SpEL 表达式语言的好例子。下面的代码有效,并将我的文件发送到下面的根目录,或者如果我在 LiteralExpression 中输入一个特定目录,则发送到特定目录。但我想用使用“路径”标题的 SpelExpression 替换 LiteralExpression 表达式,类似于我对动态调整正在上传的文件名的“文件”标题所做的事情。
要启动文件上传,我执行此代码
java - SFTP Spring 集成问题 2 *username* 的身份验证失败次数过多
我们有一个 SFTP 服务器,我们在该服务器上读取文件特定文件夹。我正在使用基于用户/密码的身份验证,我是否还需要在 DefaultSftpSessionFactory 中提供一些其他属性。下面是我的配置。
它在一段时间内工作正常,但间歇性地给出以下错误。
我不确定是什么导致了这个问题。SFTP SpringIntegration 配置有什么问题吗?我还需要在 DefaultSftpSessionFactory 类中提供一些其他属性吗?或者 SFTP 服务器有什么问题吗?任何人都可以指导我解决这个问题。
java - 在 Spring Integration 中使用 Java 配置从 SFTP 复制和移动文件
我是 Spring 集成的新手。我有这个要求,首先将文件从 /files 文件夹移动到 SFTP 位置的 /process 文件夹,然后将该文件复制到本地。建议我使用网关,并且配置必须在 java 中使用注释。我曾尝试在 stackoverflow 上寻求答案,但找不到相关内容。但是,我能够使用 @InboundChannelAdapter 并通过配置其他 bean 来复制文件。
下面是我到目前为止写的代码
配置公共类 SftpConfiguration {
}
我将不胜感激任何提示或建议。谢谢。
spring-integration - Sftp 入站通道适配器:重复消息
我想通过 sftp 将文件从两个单独的目录加载到一个本地文件夹中。所以我有两个这样的入站通道适配器:
例如,如果一个名为“test.csv”的新文件位于“remote-folder1”中,我会在日志中显示以下消息:
它看起来很奇怪,我不知道为什么每个文件有两条消息。也许我有错误的配置?有人可以解释这种行为吗?
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。我正在使用以下代码
spring-integration - 与 zookeeper 运行 spring 集成时出现异常
当我使用 Zookeeper 运行 Spring Integration SFTP 时:文件元数据放入元数据存储时面临问题。我在下面提到了代码。下面是我的配置
下面是我得到的异常跟踪。当我运行上面的程序时,我收到以下错误。
spring - 错误配置:找不到 XML 模式命名空间的 Spring NamespaceHandler
我在春季服务应用程序中遇到错误。请任何人帮助我。由于以下错误,上下文初始化失败。
错误
上下文初始化失败 rg.springframework.beans.factory.parsing.BeanDefinitionParsingException:配置问题:找不到 XML 模式命名空间的 Spring NamespaceHandler [ http://www.springframework.org/schem/integration/ftp] Spring 配置
pom.xml
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.StandardCopyOption) cannot be found on java.nio.file.Files type
代码是,
upload
方法 from被UploadGateway
调用。
堆栈跟踪是,