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