我定义了一个简单的路由,并且我想为这个路由定义一个传出拦截器,这样在完成任何请求时,我都会调用一个设置特定头的丰富器。
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...");
}
}
1条答案
按热度按时间xzlaal3s1#
您使用的是apache cxf使用的拦截器,我不认为camel中有这样的用途。您可以查看https://camel.apache.org/components/3.16.x/eips/intercept.html吗