Apache Camel调度到本地JaxRs资源实现

问题描述

我有一个驼色cxf-rs端点,它将请求分为两个主要部分。

form("cxfrs:bean:RSServer")
    .when(isForward()).to("cxfrs:http://example.com")
    .otherwise().process(myCustomdispatcher)  // i want to get rid of this custom dispatcher

第一部分直接转到其他服务。

对于第二部分,我想调度/调用具有jaxrs批注的类/方法。目前,我有一个自定义处理器myCustomerdispatcher,该处理器从批注中复制逻辑并手动分派给类和方法。尤其是@Path@PathParams是重复的。

我尝试过:

  • to("bean:MyJaxRsImplemantion")可以通过一种与骆驼交换中的参数相匹配的方法对bean起作用,但不考虑jax-rs注释。

  • 带有to("cxfrs:bean:cxfEndpoint?resourceClasses=MyJaxRsImplemantion")的服务器组合。它要么需要转发地址,要么充当创建骆驼交换的新端点。我找不到一种方法调用实际的实现。

  • ProduceTemplate似乎都可以处理单个路径或情况。

问题:

我如何编写一个骆驼路由,该路由实际上调用jax-rs资源方法而无需转发到新服务?

解决方法

这实际上是一个非常棘手的问题。一方面,即使您在Google上搜索,也无法获得直接答案。经过网络冲浪的永恒,感觉骆驼路线通过转发到新服务来调用jx-rs资源方法似乎是大地的法则。 是的,这就像to("bean:MyJxRsImplemantion")旨在忽略jax-rs注释一样。因此,我认为这是不可能的。抱歉。