如何在Spring Boot应用程序中为Apache Camel路线创建拦截器

发布于 2025-01-26 05:50:59 字数 965 浏览 2 评论 0原文

我有一个简单的路由定义,对于此路线,我想定义一个传出的拦截器,以便在任何完成的请求中,我会调用一个设置特定标头的富集器。

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤檠 2025-02-02 05:50:59

您正在使用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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文