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

Apache camel 使用Java为apache camel中的自定义组件配置使用者,apache-camel,Apache Camel,假设我有一个Jetty组件comp1和自定义组件comp2,其中comp1生成一个交换,comp2使用它。 如何在comp2的消费者中交换Jetty组件 到目前为止,我观察到我们可以在consumer'spoll()方法中获得它,如下所示- SomeEndpoint=camelContext.getEndpoint(“someURI”,SomeEndpoint.class) 但是在someURI和someEndpoint.class上配置什么呢 如果我提到someURI=“jetty:…”,那么

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

到目前为止,我观察到我们可以在consumer'spoll()方法中获得它,如下所示- SomeEndpoint=camelContext.getEndpoint(“someURI”,SomeEndpoint.class)

但是在someURI和someEndpoint.class上配置什么呢


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

Spring DSL允许您执行以下操作: 在消费者和生产者之间,您可以添加自定义生产者

<route>
  <from uri="component1 uri"/>
   your other process code
  <to uri="component2 uri">
</route>

您的其他流程代码

您必须首先使用

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必须作为配置驼峰路由的应用程序的依赖项提供


如果需要,您需要实现组件类、端点类、消费者类和生产者类。

谢谢,但您能否告诉我如何使用Java来实现它,就像我需要使用Java dsl来实现一样。是的,但是如果您实现消费者类,那么您需要获得交换,这就是我的问题所在,如何获取将为我提供jetty组件的消息和头的交换。@Mayank一种方法是在端点类中实现createConsumer()。在这里初始化处理器类并将流委托给它;例如:XyzProcessor prces=新的XyzProcessor(参数)。您的XyzProcessor将执行处理方法,并将具有可用的exchange。