Alexiuscrow
@Alexiuscrow

Как получить Http respose code в soap-клиенте?

Имеется soap веб-сервис и клиент, который с ним взаимодействует.
Для реализации используется связка Apache CXF/Spring.
Клиент:
public class MyWebServiceClientFactoryCXF {
    public MyWebServiceAPI getMyWebServiceClient(String URI, String username, String password) throws MalformedURLException {
        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
        factory.setServiceClass(MyWebServiceAPI.class);
        factory.setAddress(URI);
        factory.setUsername(username);
        factory.setPassword(password);
        factory.setDataBinding(new AegisDatabinding());
        return (MyWebServiceAPI) factory.create();
    }
}

Spring context:
<bean id="myWebServiceClientFactory" class="mypakg.MyWebServiceClientFactoryCXF"/>
<bean id="myWebServiceClient" factory-bean="myWebServiceClientFactory" factory-method="getMyWebServiceClient">
        <constructor-arg index="0" type="java.lang.String" value="${ws.url}"/>
        <constructor-arg index="1" type="java.lang.String" value="${ws.login}"/>
        <constructor-arg index="2" type="java.lang.String" value="${ws.pwd}"/>
    </bean>


Использование клиента:
public class App {
    @Autowired
    private MyWebServiceAPI wsClient;

    public void someMethod() {
        wsClient.getSomeInfo();
        // Need to know http response code from `wsClient.getSomeInfo()`
    }
}


Как я могу получить код ответа от soap веб-сервиса?
Могу указать interceptor для JaxWsProxyFactoryBean, но как передать значение из interceptor-a в метод App.someMethod() ?
  • Вопрос задан
  • 257 просмотров
Решения вопроса 1
Alexiuscrow
@Alexiuscrow Автор вопроса
public void someMethod() {
    wsClient.getSomeInfo();
    Client client = ClientProxy.getClient(wsClient);
    Integer responseCode = client.getResponseContext().get(Message.RESPONSE_CODE);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы