我有一个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
,它复制注释中的逻辑,并手动分派到类和方法。尤其是CCD_ 2和CCD_。
我尝试过:
to("bean:MyJaxRsImplemantion")
这将适用于具有匹配camel交换中参数的单个方法的bean,但不考虑jax-rs注释。服务器与
to("cxfrs:bean:cxfEndpoint?resourceClasses=MyJaxRsImplemantion")
的组合。它要么需要一个转发地址,要么作用于创建camel交换的新端点。我找不到调用实际实现的方法。ProduceTemplate似乎都能处理单一的路径或情况。
问题:
如何编写一个实际调用jax-rs资源方法而不转发到新服务的骆驼路由?
这实际上是一个非常棘手的问题。首先,即使你在谷歌上搜索,你也不会得到任何直接的答案。在经历了漫长的网络冲浪之后,骆驼路线通过转发到一个新的服务来调用jx-rs资源方法,这感觉就像是当地的规律。是的,to("bean:MyJxRsImplemantion")
被设计为忽略jax-rs注释。所以我决定这是不可能的。很抱歉