问题标签 [camel-ftp]
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 - 骆驼:如何在文件组件中使用相同的标题
我有需要从队列中读取消息的要求。队列有正文和标题,我想在下一个处理器的每个文件读取中使用这个正文和标题。
地点
/home/arvind/桌面/骆驼/索引
在处理所有文件和文件夹时,我有很多文件夹和文件我想要标题(来自activemq)。
我尝试在打印处理器中从 in.header 到 header header 并在 out.header 中设置但没有用。
谢谢
java - Apache Camel FTP 获取无法检索文件:RemoteFile 错误
我正在尝试使用 Camel FTP 组件(Camel 2.19.0)检索文件:
Camel 正在正确连接并列出目录中的文件,但是当它去处理它们时,它会为每个文件抛出以下异常:
从 TRACE 日志中,我可以看到 Camel 正确列出了目录中的文件:
但是,当 Camel 尝试处理每个文件时,它似乎将相对目录添加到绝对目录之前,并且无法找到生成的乱码路径:
FTPComponent构建的日志中的这条路径不正确:
检索文件:my/relative/directory//absolute/path/to/directory/file1.txt
我调试了 Camel FTP 消费者,看起来第 238 行是相对路径被添加到绝对路径的位置
有趣的是,SFTP 组件正在做同样的事情,但它正在工作,因为RemoteFileOperations<ChannelSftp.LsEntry>
它没有将文件名设置为绝对路径,但RemoteFileOperations<FTPFile>
确实如此。
有没有人有任何建议来解决这个问题以让 FTP 组件使用文件?还是我做错了什么?
我正在使用骆驼 2.19.0
apache-camel - 骆驼 FTP 消费者有移动和流下载问题?
streamDownload
我有一个问题,FTP2 使用者(Camel 2.19.3)在启用该属性后处理文件后无法移动文件。当它设置为false
路由按预期工作但当属性是true
骆驼时无法移动文件。
路由配置(Java DSL)如下所示:
这是我收到的错误消息的示例:
这是一个 Wireshark 捕获,显示了当streamDownload
设置为时失败运行的交互true
:
似乎 Camel 正在尝试删除和重命名文件,而该文件仍被 FTP 服务器锁定(即被路由消耗)。
现在,在将streamDownload
设置更改为 后,这是成功运行的 Wireshark 捕获false
:
顺便说一句:stepwise=true
如果你想知道,改变没有任何区别。
我究竟做错了什么?这是一个错误还是我试图做一些骆驼不支持的事情?
问候, 马特
apache-camel - 重用 Camel FTP 路由
我有一个全局定义的 FTP Camel 路由。它是从另一条路线开始的:
并在另一个线程中停止,如此处所述:
它工作正常。现在我想重新开始这条路线。假设我在文件夹中添加了新文件并想再次下载它们,或者重新下载下载的文件。
因此,我使用相同的命令再次启动这条路线,但它不会下载文件 - 它根本看不到它们,因为它们在路线中的某处标记为已下载。而如果我从骆驼上下文中删除这条路线,然后再次添加它并开始 - 它可以工作 - 它会再次下载文件。
所以问题是如何重用(开始-停止-开始)现有路线,使其作为新路线开始?
apache - 如何在 2 个不同的应用程序或战争之间共享骆驼上下文
我创建了 2 个不同的应用程序,并在其中一个中启动了骆驼上下文。如何在第二个应用程序中使用这个已经启动的上下文?
我尝试通过使用 lookUpByname() 并将骆驼上下文与 jndi 上下文绑定来获取上下文,但可以加载现有上下文。
还尝试通过在应用程序 1 的上下文中设置 NameStrategy 并在应用程序 2 中获得相同的结果,但看起来骆驼自动在 DefaultCamelContextNameStrategy 中生成名称和前缀。
请指导我在不同的应用程序中获取已经启动的上下文,因为我想避免每次都创建新的上下文。
apache-camel - 如何确保只有一台服务器读取 CAMEL 文件?
我正在使用 camel-jcifs 并读取文件。每件事都很好。该应用程序将部署在四个服务器实例上。现在我的问题是如何确保一次只有一台服务器拾取文件?
我得到了使用 infinispan 并写入正在进行的文件的共享缓存的建议。
有人可以建议其他可能的解决方案吗?
问候,萨拉达。
apache-camel - ftp 消费者流下载 seda 队列在拆分器 tariterator 期间失败
首先是我的要求的一点背景:
- 从多个动态定义的只读 ftp/sftp 站点下载大型 tar.gz 文件。
- 根据条目名称的扩展名处理 .tar.gz 中的文件。
- 使用骆驼 2.19.3
我的解决方案是使用 download=false 定义新路由,以仅获取未处理文件的列表。示例路线是:
将文件名发送到 seda 队列,该队列使用 streamDownload 下载文件并将 RemoteFile 发送到定义为的处理路由器:
解包路径定义为:
首先,这是支持并发 ftp 消费者的好解决方案吗?我看到新的 FTPClient 实例是在同一个线程上创建和处理的。有更好的解决方案吗?
其次,使用 seda 队列处理流时会出现随机 tar 错误。如果使用直接而不是 seda 以便只处理单个文件,则不会发生错误。这似乎指向一个并发问题。我错过了一些明显的东西吗?
提前感谢您的帮助。
apache-camel - Apache Camel FTP 文件应由单个服务器使用
我有两台服务器轮询到相同的 ftp 位置。当文件放置在该位置时,两个服务器都在挑选文件。但我只需要一台服务器来选择文件并处理和删除。我使用的是 Camel 2.16.2 版本。有没有办法解决这个问题?
java - 带有 Spring XML 的 Apache Camel SFTPConfiguration
我正在开发一个使用带有 SFTP 端点的 Apache Camel 的旧版应用程序。Camel 上下文是使用 Spring Xml Dsl 定义的,例如
我需要使用SFTPConfiguration对象配置 Camel SFTP,但不知道如何连接它,因为我正在使用 Spring。
我可以使用 Spring 在 XML 文件中创建 bean 并且 Camel 会自动检测它吗?
java - Camel 保持 SFTP 连接打开导致内存泄漏
我一直在分析我们的一个应用程序中的内存泄漏,在分析堆转储时,我发现 >98% 的内存被 Camels 占用SharedProducerServicePool
。基本上它在它的池中保留了很多(RemoteFileProducer
在这个特定的样本中大约 41k)。他们都有一个SftpEndpoint
.
以下是最终通过 SFTP 上传文件的 Camel 路由:
SFTP 连接未关闭或生产者创建但未再次停止的原因可能是什么?我在官方文档中找不到提示。
非常感谢任何帮助:)
注意:这里使用的 Caml 版本是 Camel 2.17.0