FTP 入站通道适配器的 FTP 问题

2024-05-11

我们的项目使用 ftp:inbound-channel-adapter 从 FTP 服务器轮询文件。它工作正常。但在轮询之间不起作用。当我看到 FTP 服务器日志时,我看到“425 无法打开数据连接” ”。现在,当我重新启动或停止并再次启动 ftp:inbound-channel-adapter 时,它会正确轮询。此问题反复发生以解决我需要停止/启动 ftp:inbound-channel-adapter.ftp:inbound-channel-adapter运行在linux操作系统中。

我使用 spring-integration 3 只是为了更清楚我已经包含了 xsd 信息 (spring-integration-3.0.xsd、spring-integration-ftp-3.0.xsd)

我需要为 FTP 设置任何特定的客户端模式,即主动(本地/远程)/被动(本地/远程)等吗? 下面是我的 ftp:inbound-channel-adapter 配置

<bean id="ftpClientFactory" class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
        <property name="host" value="abcd.com"/>
        <property name="port" value="21"/>
        <property name="username" value="userid"/>
        <property name="password" value="password"/>
    </bean>

<int-ftp:inbound-channel-adapter id="ftpInbound"
                channel="ftpChannel"
                session-factory="ftpClientFactory"
                auto-create-local-directory="true"
                delete-remote-files="true"
                remote-directory="/"  
                local-filename-generator-expression="new java.text.SimpleDateFormat('yyyy-MM-dd-hhmmssSSS').format(new java.util.Date()) + '.'+ #this"  
                local-directory="${ftp.sync.folder}"
                remote-file-separator="/">
    </int-ftp:inbound-channel-adapter>

所以不确定我可以在 FTP 服务器中执行某些操作。但我想看看 ftp:inbound-channel-adapter 中是否有任何选项或您建议的任何内容,以便每当 FTP 服务器抛出“425 无法打开数据连接”时。 ”除了手动停止/启动 ftp:inbound-channel-adapter 之外,是否有任何选项或自动方法可以使其工作。谢谢

添加了有关 spring 集成版本和 ftp 会话工厂的信息。


连接FTP服务器有主动和被动两种方式。

ActiveMode :FTP 服务器必须与客户端提到的端口建立数据连接 (防火墙问题,如果端口被防火墙阻止,您将收到 425 数据连接错误)

被动模式:客户端必须与 FTP 服务器提到的端口建立数据连接。 (客户端没有公平墙问题。我们还可以在 FTP 服务器中配置 passvieports,并使这些端口不被 FTP 服务器防火墙阻止。)

如果您未在 ftpsessionfactory 中指定任何 clientmode,则默认为 Active 模式,即 clientMode=0。 所以我有防火墙问题,导致 425 数据连接问题。在我关闭防火墙后,它运行良好。所以现在我更改了我的 FTPsessionfactory 以使用被动模式,因此 FTP 服务器从不关心客户端防火墙

<bean id="ftpClientFactory" class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
        <property name="host" value="abcd.com"/>
        <property name="port" value="21"/>
        <property name="username" value="userid"/>
        <property name="password" value="password"/>
<!-- 2  passive mode -->
<property name="clientMode" value="2"/>
</bean>

这种方式从不关心客户端的防火墙。 关于 FTP 的非常好的帖子http://slacksite.com/other/ftp.html http://slacksite.com/other/ftp.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FTP 入站通道适配器的 FTP 问题 的相关文章

  • Spring Integration - 无法检索 Oracle 阵列 OUT PARAM

    描述 尝试创建返回 oracle 数组类型的网关服务调用 特别获取 sys dbmsoutput linesarray 下面出现的错误似乎是当我注册 OUT 参数或可能在服务中时我的配置有问题 想知道是否有人可以告诉我我做错了什么 错误信息
  • 无法在 spring-integration 4.1.x 中将 String 值转换为 ExpressionEvaluatingRequestHandlerAdvice 的表达式

    我无法让 ExpressionEvaluatingRequestHandlerAdvice 类在 Spring Integration 4 1 x 中工作 以下表达式建议上下文 XML 片段会产生一个转换错误 指出 Spring 无法将 o
  • 不带参数的 Spring Integration Gateway

    在我的网关上 我有一个方法 Gateway String commsTest 我的想法是 我可以从 bean 调用 commsTest 并使用 spring 集成将其连接到将检查通信的服务激活器 当我这样做时 我会得到一个receive i
  • 如何使用SPEL引用@GatewayHeader中参数的属性

    这应该是一个简单的问题 但我在网上找不到合适的文档 我想做这个 MessagingGateway name redemptionGateway defaultRequestChannel Channels GATEWAY OUTPUT de
  • 带有事务的 SourcePollingChannelAdapter

    我想使用 SourcePollingChannelAdapter 来实现轮询时需要事务传播 以便在发生错误时回滚所有操作 setTransactionSynchronizationFactory 方法没有注释 非常感谢你的帮助 在 XML
  • Spring Integration 5.0 + Project Reactor:控制线程

    跟进问题https stackoverflow com a 47136941 1776585 https stackoverflow com a 47136941 1776585 我无法使我的集成 处理程序在使用时在并行线程中运行Flux
  • 集群模式下的 Spring 入站集成

    我们正在使用 spring 入站轮询适配器来检查文件并处理它 问题是进程正在集群模式下运行多个节点 我们的测试环境使用两个节点的负载平衡 要求是在一个节点上启动此轮询过程 我们怎样才能在不创建两个 war 文件的情况下实现这一目标 我们不应
  • 简单文件复制的正确 Java 配置是什么

    我对 Spring 非常陌生 对 Spring Integration 更陌生 所以如果这是一个非常基本的问题 我深表歉意 我想构建一个非常基本的日志文件处理器来学习诀窍 与此非常相似 example http forum spring i
  • Spring 集成 TCP。获取已连接客户端的连接ID

    我在这里遇到动态 TCP 连接方法的问题 Spring IP 动态 FTP 示例 https github com spring projects spring integration samples tree master advance
  • spring amqp-outbound gateway 生成来自不同 thead 的回复(如 jms-outbound gateway)

    问题陈述 Spring amqp outbound gateway 从不同线程生成回复 像 jms outbound gateway 一样 具有不同的队列 使用相关键关联请求 响应 无法将该消息与此示例关联起来 弹簧集成
  • 如何从 WMQ 获取 JMS 目标

    我正在使用 spring 集成使用来自 wmq 的消息 但我无法在消息头中获取 JMS 目标 我想知道消费消息的队列名称 在活动 mq 中 我们将获得一个名为 JMS Destination 的参数 其中队列名称可用 是否有可能使用 spr
  • Spring Batch 集成 Java DSL 和 RunIdIncrementer 不递增

    我有一个 spring boot integration batch 它将在 SFTP 上运行和轮询文件 我希望能够最终使用相同的参数 基本上相同的文件 重新启动作业 可能是因为应用程序已重新启动 或者因为某些原因我们再次收到相同的文件 R
  • rabbitmq 通道因 PRECONDITION_FAILED 关闭 - 快速回复消费者不存在

    当我们从 Spring Boot 服务向rabbitmq 发布消息时 出现以下错误 而且这是间歇性的 我们无法重现这一点 AMQP 连接 123 11 xxx xx 5672 错误 org springframework amqp rabb
  • Spring 集成超时客户端

    我的 Spring 集成场景是 使用自定义协议发送数据的数十个生产者 大小和内容 我必须解码这个自定义协议 然后处理结果 所以我尝试了很多配置 目前最好的配置如下
  • Spring 集成 - SFTP 复制后在远程服务器中重命名或移动文件

    我正在尝试移动或重命名远程文件 而不是下载后删除远程文件 我发现可以通过出站网关移动命令来完成此操作 但找不到正确的方法 下载后请帮忙重命名文件 Bean Order Ordered HIGHEST PRECEDENCE public Se
  • 持久订阅 ActiveMQ

    我正在尝试为我的消息设置持久订阅者 以便即使在服务器重新启动后它们也能保留在主题中 但在配置过程中我收到与 xml 相关的错误 这是我的配置 xml
  • Spring Batch - 读取多行日志消息

    我面临一个问题 在配置了 Spring 集成的 Spring Batch 应用程序中将多行日志消息读取为单个消息 该应用程序必须将多行日志消息 示例异常堆栈跟踪 读取为单个消息 稍后它必须处理并对消息进行分类以进一步建立索引 每行都由其时间
  • 当没有更多消息时退出 Spring Integration

    我使用 Spring Integration 4 1 配置从数据库中批量检索消息 而不是作为服务 我知道每天要处理十几条消息 因此我需要每天运行一次批处理 我的 jdbc inbound channel adapter 配置为检索 max
  • Spring批量写入器限制

    我正在工作 Spring Batch 项目 从数据库读取记录然后写入rabbitmq 然后发送到HTTP消息网关 网关有150TPS我需要将我的应用程序限制为 150TPS 有没有办法带弹簧批的油门或者还有其他更好的方法吗 你能行的 在 S
  • Spring Integration 应用程序在作为打包 jar 执行时不定义通道

    我开始在工作的一个项目中使用Spring Integration 一切看起来都很好 并且在我的本地开发环境中运行顺利 当从 Eclipse 执行时 然而 当我尝试部署到我们的开发 登台环境时 我遇到了一些与 Spring Integrati

随机推荐