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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...