如何在Spring Boot应用程序中为Apache Camel路线创建拦截器
我有一个简单的路由定义,对于此路线,我想定义一个传出的拦截器,以便在任何完成的请求中,我会调用一个设置特定标头的富集器。
from("direct:remoteService")
.routeId("direct-route")
.tracing()
.log(">>> ${body.id}")
.log(">>> ${body.name}")
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
MyBean bodyIn = (MyBean) exchange.getIn().getBody();
ExampleServices.example(bodyIn);
exchange.getIn().setBody(bodyIn);
}
})
.setHeader(Exchange.HTTP_RESPONSE_CODE, constant(200));
我试图定义AbstractPhaseInterceptor的实现,但没有调用。我在做什么错?
@OutInterceptors
public class HeaderEnricherInterceptor extends AbstractPhaseInterceptor<Message> {
public HeaderEnricherInterceptor() {
super(Phase.POST_PROTOCOL);
}
@Override
public void handleMessage(Message message) {
log.debug("Message interceptor start enrichment...");
}
}
I have a simple route defined and for this route I want to define an outgoing interceptor so that on any request done, I would invoke an enricher that sets specific header.
from("direct:remoteService")
.routeId("direct-route")
.tracing()
.log(">>> ${body.id}")
.log(">>> ${body.name}")
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
MyBean bodyIn = (MyBean) exchange.getIn().getBody();
ExampleServices.example(bodyIn);
exchange.getIn().setBody(bodyIn);
}
})
.setHeader(Exchange.HTTP_RESPONSE_CODE, constant(200));
I've tried to define an implementation of AbstractPhaseInterceptor but it is not invoked. What am I doing wrong?
@OutInterceptors
public class HeaderEnricherInterceptor extends AbstractPhaseInterceptor<Message> {
public HeaderEnricherInterceptor() {
super(Phase.POST_PROTOCOL);
}
@Override
public void handleMessage(Message message) {
log.debug("Message interceptor start enrichment...");
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您正在使用Apache CXF使用的拦截器,我认为骆驼没有这种用途。您可以检查 https://camel.apache.org.org/components/ 3.16.x/eips/intercept.html
You are using an interceptor used by apache cxf, I don't think there is such a use in camel. can you check out https://camel.apache.org/components/3.16.x/eips/intercept.html