如何在Sping Boot 应用程序中为Apache Camel Route创建拦截器

wribegjk  于 2022-11-07  发布在  Apache
关注(0)|答案(1)|浏览(132)

我定义了一个简单的路由,并且我想为这个路由定义一个传出拦截器,这样在完成任何请求时,我都会调用一个设置特定头的丰富器。

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...");
    }
}
xzlaal3s

xzlaal3s1#

您使用的是apache cxf使用的拦截器,我不认为camel中有这样的用途。您可以查看https://camel.apache.org/components/3.16.x/eips/intercept.html

相关问题