我想编写一个 Camel 路由,它读取特定目录中的所有 xml 文件,然后调用实现 Processor 的类的 process Java 方法来做某事并将结果打印到屏幕。
例如,Java 类名为 ScriptProcessor,它有一个处理方法:
public class ScriptProcessor implements Processor{
final Script script ;
public ScriptProcessor(Script script){
this.script = script;
}
@Override
public void process(Exchange exchange) throws Exception {
//do something ...
}
}
所以,目前我有一个带有这样一条路线的 Camel 上下文:
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="file:?noop=true"/>
<to uri="mock:result"/>
</route>
</camelContext>
我假设所有 xml 文件都在具有 Camel 上下文定义(“from”标签)的文件的同一目录中,并且我使用 mock 元素来指定路由的目的地。 我不知道如何在 Camel 路由中调用 ScriptProcessor 类的 process 方法。需要一个“过程”标签或类似的东西吗? 有人可以帮助我吗?
最佳答案
你可以这样使用处理器:
<bean id="scriptProcessor" class="com.my.app.ScriptProcessor"/>
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="file:?noop=true"/>
<process ref="scriptProcessor" />
<to uri="mock:result"/>
</route>
</camelContext>
或者使用camel bean集成:
public class SomeBean {
public void someMethod(Exchange exchange) throws Exception {
//do something
}
}
Camel 语境:
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="file:?noop=true"/>
<bean ref="someBean" method="someMethod"/>
<to uri="mock:result"/>
</route>
</camelContext>
关于java - 如何创建引用特定 Java 方法的 Camel 路线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29949148/