2011-09-14 10 views
0

私たちはサーバー上でさまざまなシステムからSOAPリクエストを受け取ります。応答を送信する前に、要求システムにいくつかの詳細を取得するようにいくつかの新しい要求を行う必要があります。これを行うには、要求しているサーバーの詳細を判断する必要があります。リクエスタIP を - - - システムVIP を要求するその他の要求者の具体的詳細Apache CXFを使用してSOAP呼び出しを介してリクエスタの詳細を取得できますか?

+0

WebサービスプロバイダにJAX-WSを使用していますか? – home

+0

いいえ私はCXFを使用しています。 – explorer

+0

大丈夫ですので、私はちょうど参照のために私の答えを保持します。 – home

答えて

0

JAX-WS APIを使用する場合は、WebServiceContextを使用してメッセージメタデータを取得できます。

@WebService(name = "MyService" /*...*/) 
public class MyService { 

    @Resource 
    private WebServiceContext wsc; 

    @WebMethod 
    public MyResponse process(MyRequest request) { 
     HttpServletRequest httpRequest = (HttpServletRequest) wsc.getMessageContext().get(MessageContext.SERVLET_REQUEST); 

     httpRequest.getRemoteAddr(); // access some parameters... 

     return new MyResponse(); 
    } 

} 

これは、発信者アドレスのようなHTTPリクエストを介して来た「すべて」にアクセスできるようにします。

0

私はSOAPサービスは、HTTPプロトコルに基づいていると仮定し :detemineする方法はあります。 HttpServletRequestのgetRemote ...()メソッドを使用できます。しかし、その情報があなたのために十分であるかどうかはわかりません。もう1つの選択肢は、要求に必要なクライアント情報をクライアントに要求することです。

関連する問題