1

我有一个骆驼 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")。它要么需要一个转发地址,要么作用于创建骆驼交换的新端点。我找不到调用实际实现的方法。

  • ProduceTemplates 似乎都处理单一的路径或情况。

问题:

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

4

1 回答 1

-1

这实际上是一个非常棘手的问题。一方面,即使你用谷歌搜索,你也没有得到任何直接的答案。在网上冲浪了很久之后,感觉骆驼路由通过转发到一个新的服务来调用jx-rs资源方法是天经地义的。是的,它几乎就像to("bean:MyJxRsImplemantion")是设计来忽略 jax-rs 注释。所以我决定这是不可能的。对不起。

于 2020-09-22T07:00:07.167 回答