1

我是 Apache Camel 的新手,并试图解决以下路由问题:

我在同一个 JVM(端点)中实现和部署了基于 CXF JAX-RS 的 REST 服务。

我有另一组 REST 服务,它们不在它所在的同一 Java 进程中(python 或任何其他进程,但在同一主机上)。

我们有统一的端口来访问这两种服务,例如,

客户端调用 ----> HTTP Rest 调用 (8080) -----> Jetty Server(8080) ---> Camel Route( if(“/java_api/” ----→ to( http://localhost ) :9090 ) else { 到 ( http://localhost:9091 (旧服务)}

    <cxf:rsServer id="javaRestServer" address="http://localhost:9090/java_api" 
    loggingFeatureEnabled="true" 
    serviceClass="…." >
    <cxf:providers>
        <ref bean="jaxbProvider" />
        <ref bean="jsonProvider" />
    </cxf:providers>
    <cxf:serviceBeans>
        <ref bean="myService"/>            
    </cxf:serviceBeans>
</cxf:rsServer>  

这种方法的问题是对 Java API(java_api) 路由有不必要的 http 调用,因为它已经在本地托管,我不想招致 HTTP 调用。

这样做是为了设置所有可以设置的 CXF 上下文(给我的这个信息)并能够提供 REST 服务。

所以,我的问题是:

1)有没有办法设置路由来调用 cxf 本地绑定 JAX-RS(直接调用)而不是 Java API 的 http 调用?

2)如何配置路由,以便创建 HTTP 代理标头(例如 X-Forwarded-For )并传递给旧的服务 API?因为,Java 层确实充当了代理服务器。

提前感谢您的帮助!

4

0 回答 0