gpt4 book ai didi

java - 为什么这个 Apache Camel 拦截不起作用?

转载 作者:行者123 更新时间:2023-11-30 07:02:37 25 4
gpt4 key购买 nike

我有一个主要路线 build 者:

public class MainRouteBuilder extends RouteBuilder {

@Override
public void configure() throws Exception {
from("activemq:a.out").to("activemq:b.in");

from("activemq:b.in").bean(MainMessageConsumer.class);
}
}

我有第二个“拦截”路线构建器:

public class InterceptRouteBuilder extends RouteBuilder {

@Override
public void configure() throws Exception {
interceptSendToEndpoint("activemq:a.out").to("activemq:c.in").skipSendToOriginalEndpoint();

from("activemq:c.in").bean(InterceptMessageConsumer.class);
}
}

两者都注册到 CamelContext(首先注册 MainRouteBuilder,其次注册 InterceptRouteBuilder)。但是,当我通过以下方式向“activemq:a.out”发送消息时:

public class App {

@Produce(uri="activemq:a.out")
private Producer producer;

public void run() {
producer.request("hello");
}

}

消息仍然到达 MainMessageConsumer 而不是被拦截。我做错了什么?

最佳答案

拦截器仅适用于同一路由构建器类中的所有路由。如果你想让它同时工作,那么创建一个基类,并将拦截器放在那里,让其他路由扩展你的基类,并在配置方法中调用它的super(例如OO继承)

关于java - 为什么这个 Apache Camel 拦截不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29031456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com