Apache Camel分派到本地JaxRs资源实现

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

我有一个camel 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")这将适用于具有与camel交换中的参数匹配的单个方法的bean,但不考虑jax-rs注解。
  • to("cxfrs:bean:cxfEndpoint?resourceClasses=MyJaxRsImplemantion")的几个组合。它要么需要一个转发地址,要么作用于一个新的端点,创建camel交换。我找不到一种方法来调用实际的实现。
  • ProduceTemplates似乎都能处理单一路径或情况。
    问题:

我如何编写一个实际调用jax-rs资源方法而不转发到新服务的camel路由?

2w2cym1i

2w2cym1i1#

这实际上是一个非常坚韧的问题。首先,即使你在谷歌上搜索,你也不会得到任何直接的答案。在浏览了无数次网页之后,感觉就像是 Camel 路线通过转发到一个新的服务来调用jx-rs资源方法一样。是的,这几乎就像是to("bean:MyJxRsImplemantion")被设计成忽略jax-rs注解一样。所以我决定这是不可能的。抱歉。

相关问题