gpt4 book ai didi

Java Camel FTP 上传

转载 作者:行者123 更新时间:2023-11-30 07:20:25 24 4
gpt4 key购买 nike

首先,抱歉我的英语不好。

问题是我无法在本地 FTP 服务器上上传文件 (.xls)。

这是异常(exception):

[org.apache.camel.component.file.GenericFileOperationFailedException - Error writing file GAS_EAV_EMV.xls]

这是我的路线:

<route id="sendFtp">
<from uri="direct:sendFtp"/>
<setHeader headerName="CamelFileName">
<simple>GAS_EAV_EMV.xls</simple>
</setHeader>
<process ref="egssisFtpProcessor"/>
<to uri="ftp://foo@127.0.0.1:21/?password=pwd"/>
</route>

这里是我的处理器附加文件:

public class EgssisFtpProcessor implements Processor {

@Override
public void process(Exchange exchange) throws Exception {
String filename = exchange.getIn().getHeader(Exchange.FILE_NAME, String.class);
exchange.getIn().addAttachment(filename, new DataHandler(new FileDataSource(filename)));
}
}

交换对象在处理器末尾有附件。

它适用于 SMTP 协议(protocol),但不适用于 FTP。

有什么想法吗?

服务器日志:

[14:29:29] - [78] Connecté à 127.0.0.1. Collecte du Nom d'utilisateur.
[14:29:29] - [78] Usager FOO Connecté IP: 127.0.0.1
[14:29:29] - [78] FOO : Répertoire en Cours: C:\tmp\
[14:29:29] - [78] Client 127.0.0.1 Déconnecté (00:00:00 Min)

最佳答案

不使用附件。相反,只需将消息正文设置为您要上传的文件的 java.io.File。

exchange.getIn().setBody(new File(filename));

并且由于您使用 XML,因此您可能希望在没有任何 Java 代码的情况下执行此操作。您可以使用消息转换器 EIP 将消息正文转换为 java.io.File,并以消息头作为文件名。

<transform>
<simple resultType="java.io.File">${header.CamelFileName}</simple>
</transform>

关于Java Camel FTP 上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14041618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com