2011-07-20 18 views
0

クライアントに相当するEndpointInterceptorAdapterはありますか?には、クライアントのEndpointInterceptorAdapterに相当するものがありますか?

私はクライアントからの発信メッセージと受信メッセージを傍受して、いくつかの作業をする必要があるためです。

EndpointInterceptorAdapterはエンドポイントメッセージのみを代行受信します。私はあなたがSmartEndpointInterceptor

public class SmartEndpointInterceptorImpl implements 
    SmartEndpointInterceptor 
{ 

    public boolean handleRequest(MessageContext messageContext, Object endpoint) 
     throws Exception 
    { 
     SaajSoapMessage soapSaajMsg = (SaajSoapMessage)messageContext.getRequest(); 
     return true; 
    } 


    public boolean handleResponse(MessageContext messageContext, Object endpoint) 
     throws Exception { 

     return true; 
    } 

    //I omitted two more methods 
} 

答えて

0

を使用することができると思う

0

はまあ、私は答えを見つけました。 ClientInterceptorを実装するクラスを作成する必要があります。

すなわち

package com.coral.project.interceptor; 

public class WebServiceClientInterceptor implements ClientInterceptor { 

@Override 
public boolean handleRequest(MessageContext messageContext) 
     throws WebServiceClientException { 
    // TODO Auto-generated method stub 
    return true; 
} 

@Override 
public boolean handleResponse(MessageContext messageContext) 
     throws WebServiceClientException { 
    // TODO Auto-generated method stub 
    return true; 
} 

@Override 
public boolean handleFault(MessageContext messageContext) 
     throws WebServiceClientException { 
    // TODO Auto-generated method stub 
    return false; 
} 
} 

とバネWS設定ファイルに定義する:

<bean id="crmClient" class="com.coral.project.clients.CrmClient"> 
    <property name="defaultUri" value="..."/> 
    <property name="marshaller" ref="jaxb2Marshaller" /> 
    <property name="unmarshaller" ref="jaxb2Marshaller" /> 
    <property name="interceptors"> 
     <list> 
      <bean class="com.coral.project.interceptor.WebServiceClientInterceptor" /> 
     </list> 
    </property> 
</bean> 

そしてそれはそれです。

+0

興味深い...私はこれを試して、報告するつもりです:) – Benchik

+0

これは依然としてクライアントではなくエンドポイントだけを傍受します。他のアイデア? – Benchik