Есть ли эквивалент EndpointInterceptorAdapter для клиента? - PullRequest
0 голосов
/ 20 июля 2011

Существует ли эквивалент EndpointInterceptorAdapter для клиента?

Потому что мне нужно перехватывать исходящие и входящие сообщения от клиента и выполнять с ними некоторую работу.

EndpointInterceptorAdapter перехватывает только сообщения конечной точки.

Ответы [ 2 ]

0 голосов
/ 10 августа 2011

Ну, я нашел ответ. Вы должны создать класс, который реализует 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;
}
}

и определите в конфигурационном файле spring-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 голосов
/ 21 июля 2011

Я думаю, вы можете использовать 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
}
...