1

私はApache Camelを初めて使用し、ルーティングに関する次の問題を解決しようとしています:

CXF JAX-RS ベースの REST サービスを実装し、同じ JVM (エンドポイント) にデプロイしました。

同じJavaプロセス内にないRESTサービスの別のセットがあります(pythonまたは他のプロセスですが、同じホスト上にあります)。

両方のサービスにアクセスするためのユニファイド ポートがあります。たとえば、

クライアント呼び出し ----> HTTP Rest 呼び出し (8080) ---> Jetty サーバー (8080) ---> Camel Route( if(“/java_api/” ----→ to( http://localhost :9090 ) else { to ( 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>  

このアプローチの問題は、すでにローカルでホストされており、HTTP 呼び出しを発生させたくないため、Java API(java_api) ルートの不要な http 呼び出しがあることです。

これは、すべての CXF コンテキストをセットアップして (この情報は私に提供されました)、REST サービスを提供できるようにするために行われました。

だから、私の質問は次のとおりです。

1) Java API の http 呼び出しではなく、cxf ローカルバインディング JAX-RS (直接呼び出し) を呼び出すようにルートを設定する方法はありますか?

2) HTTP プロキシ ヘッダー ( X-Forwarded-For など) が作成され、古い Service API に渡されるようにルートを構成するにはどうすればよいですか? それ以来、Java Layer は実際にプロキシ サーバーとして機能しています。

助けてくれてありがとう!

4

0 に答える 0