假设我有一个Jetty组件comp1和自定义组件comp2,其中comp1生成一个交换,comp2使用它。 如何在comp2的消费者中交换Jetty组件。
到目前为止,我观察到我们可以在消费者的poll()方法中获取它 - SomeEndpoint endpoint = camelContext.getEndpoint(“someURI”,SomeEndpoint.class);
但在someURI和someEndpoint.class配置什么?
如果我提到someURI =“jetty:..”,那么我的消费者不会消耗来自任何其他端点的消息,那么如何配置它为通用?
答案 0 :(得分:1)
您必须首先使用
为自定义组件创建skelatal代码mvn archetype:generate -DarchetypeGroupId=org.apache.camel.archetypes -DarchetypeArtifactId=camel-archetype-component
-DarchetypeVersion=2.14.1 -DarchetypeRepository=https://repository.apache.org/content/groups/snapshots-group
-DgroupId=org.apache.camel.component -DartifactId={YourArtifactId}
您的组件前缀文件位于此位置
src/main/resources/META-INF/services/org/apache/camel/component/
此文件的名称是您的组件前缀。从第一步开始生成项目时,请提供此名称。
让我们说它的名字是comp2。现在您只需要以这种方式配置路由:
from("jetty:abc").to("comp2:xyz");
必须将组件的jar作为依赖项提供给配置Camel Route的应用程序。
如果需要,您需要实现Component Class,Endpoint类,Consumer和Producer类。
答案 1 :(得分:0)
Spring DSL允许你做这样的事情: 在消费者和生产者之间,您可以添加自定义生成器
<route>
<from uri="component1 uri"/>
your other process code
<to uri="component2 uri">
</route>