Java Apache camel ftp组件-成功传输时的通知

Java Apache camel ftp组件-成功传输时的通知,java,apache-camel,camel-ftp,Java,Apache Camel,Camel Ftp,我们正在使用Camel构建一个Java应用程序,以便在两个FTP位置之间传输文件。有没有办法获得成功传输文件的通知?我们不允许使用JMS解决方案来构建应用程序。我希望您可以创建另一个路由,并将seda/vm作为端点。此端点需要在ftp端点之后调用 <route id="MainRoute"> <from uri="ftp:RemoteLocation"/> <from uri="seda:Retry"/> <to uri="seda:MyLog"/&g

我们正在使用Camel构建一个Java应用程序,以便在两个FTP位置之间传输文件。有没有办法获得成功传输文件的通知?我们不允许使用JMS解决方案来构建应用程序。

我希望您可以创建另一个路由,并将seda/vm作为端点。此端点需要在ftp端点之后调用

<route id="MainRoute">
<from uri="ftp:RemoteLocation"/> 
<from uri="seda:Retry"/>
<to uri="seda:MyLog"/>
<!--Your Main Processing logic -->
</route>

<route id="Notification-processor">
<from uri="seda:MyLog"/>
<!--Your Logging/Notification Processing logic -->
</route>

在上述NotificationProcessor场景中,您可以自定义Notification/log活动。这是您的自定义通知逻辑。如果需要通知异常情况,可以在通知处理器中使用to端点来发送通知

您需要编写逻辑来检查消息是否完整,如果不完整,您可以在通知处理器中调用一个bean,该bean可以具有从ftp位置提取特定文件并重新处理的动态路由。如下

<route id="Notification-processor">
<from uri="seda:MyLog"/>
<!--Anomaly checker  -->
<to uri="seda:Retry"/>
<!--Your Logging/Notification Processing logic -->
</route>


您可以在一条路线中有多个
呼叫。我不知道你想要什么通知机制。。。如果不是JMS,那么可能是web调用
.to(“ftp:…”)。to(“http:…”)
或者您希望它发送电子邮件
.to(“ftp:…”).to(“smtp:…”)
或者您希望使用SEDA事件
。to(“ftp:…”).to(“SEDA:…”)
。“我想你明白了。”雷,谢谢你的快速回答。为了增加一些清晰度,总流量将包括1。从远程FTP读取一个位置,成功读取后重命名该位置并将其移动到其他文件夹2。添加wiretap以进行一些处理3。将文件写入其他远程FTP位置。是否有可能在成功写入/传输时获得状态通知?我知道出于业务原因,您需要此通知。您需要将此信息传达给comeone还是直接记录下来。你对完工通知做了什么。您对此的回答将有助于我们改进我们试图提供的答案give@NaveenRaj是的,纳文,我需要跟踪所有成功的转会。这需要在不使用任何JMS解决方案的情况下实现。仅仅记录日志对我来说可能不够。理想情况下,我正在从目标FTP服务器寻找某种成功标志。