问题描述
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注释一样。因此,我认为这是不可能的。抱歉。