2016-08-20 9 views
0

以下のシナリオは、IBM JDKおよびIBM JAX-RPC実装用のシナリオです。JAX-RPC要求のカスタムhttpヘッダーがwebsphere 8で機能しない

要件は、コンテナとしてWebSphereを使用したJAX-RPCリクエストのカスタマーヘッダープロパティのカップルを送信することです。クライアントに以下のコードが設定されています。

HashMap headers = new HashMap(); 
headers.put("fid-app","Test"); 
headers.put("someKey","someValue"); 
stub._setProperty(Constants.REQUEST_TRANSPORT_PROPERTIES, headers); 

私は(クラスパスにのWebSphereシン・クライアントを追加する)私のマシンからクライアントをテストしようとした私は、HTTPヘッダーが正しく渡されている見ることができました。 WebSphereコンテナにデプロイされている場合、同じコードは機能しません。

ローカルテストとコンテナテストの両方でトレースログを有効にすると、WebsphereがThreadLocalからREQUEST_TRANSPORT_PROPERTIESプロパティを取得しようとしましたが、ローカルテストでHashMapが返され、nullがコンテナに返されています。

この問題の原因は何ですか?要求転送ヘッダーを有効にするために、コンテナ内に追加のプロパティを設定する必要がありますか?

ありがとうございました。

答えて

0

この問題は、JAX-RPCまたはWebSphereに関連していないことが判明しました。私たちはhystrixを使ってスタブ呼び出しを処理するプロキシクラスを使用しています。私のローカルテストでは、ヒステリックを無効にしていたので、うまくいきました。 hystrixが有効にされ、実行戦略がTHREADに設定されたコンテナ環境では、したがって、ヘッダー・パラメーターがスタブに設定されている場合、ヘッダー・パラメーターは、WebSphereがそれらをロードしようとしたときに取得しようとしたものとは異なるスレッドに保管されます。それが根底にある問題でした。 hystrixの実行戦略SEMAPHOREに切り替えて、うまくいきました。

関連する問題