使用Java在apache camel中为自定义组件配置使用者

时间:2015-03-03 18:07:44

标签: apache-camel

假设我有一个Jetty组件comp1和自定义组件comp2,其中comp1生成一个交换,comp2使用它。 如何在comp2的消费者中交换Jetty组件。

到目前为止,我观察到我们可以在消费者的poll()方法中获取它 - SomeEndpoint endpoint = camelContext.getEndpoint(“someURI”,SomeEndpoint.class);

但在someURI和someEndpoint.class配置什么?

如果我提到someURI =“jetty:..”,那么我的消费者不会消耗来自任何其他端点的消息,那么如何配置它为通用?

2 个答案:

答案 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>