2014-02-12 5 views
1

В настоящее время я пытаюсь протестировать своих клиентов веб-сервисов с помощью Spring MockWebServiceServer, поскольку настоящие серверы веб-сервисов пока не отображаются. Я следовал за весенний документом http://docs.spring.io/spring-ws/site/reference/html/client.html, но все еще получаю некоторые проблемы, как показано ниже:Клиент тестовой веб-службы с весной MockWebServiceServer

org.springframework.ws.client.WebServiceIOException: I/O error: Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect 
       at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:545) 
       at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:386) 
       at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:380) 
       at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:372) 

Я считаю, что ошибка имеет что-то делать с WebServiceTemplate я autowired в мой клиент WS, как показано ниже. Поскольку я использую MockWebServiceServer, я не думаю, что нужно настоящее HTTP-соединение, но почему оно жалуется как таковое? Мне еще нужно запустить мой сервер tomcat, чтобы сделать localhost: 8080 доступным даже с помощью MockWebServiceServer?

<bean id="vehicleOrderConfirmationWebServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate"> 
     <constructor-arg ref="messageFactory"/> 
     <property name="marshaller" ref="vehicleOrderConfirmationMarshaller" /> 
     <property name="unmarshaller" ref="vehicleOrderConfirmationMarshaller" /> 
     <property name="defaultUri" value="http://localhost:8080"/> 
</bean> 

Любой может предложить?

+0

Не могли бы вы высказать свой тестовый код класса клиента? – vzamanillo

ответ

0

Отмеченный сервер не нуждается в реальном http-соединении. он издевается над MessageSender. как вы создали вас, издевавшийся веб-сервер? ниже использования должно быть достаточно реального издевательства сервера

MockWebServiceServer.createServer (vehicleOrderConfirmationWebServiceTemplate);

+0

Я пробовал это раньше, но не работал, думаю, я все еще что-то пропустил ... вот почему позже я решил создать целый настоящий макет сервера веб-сервисов для тестирования моих клиентов. –

0

Если ваш класс клиент расширяет WebServiceGatewaySupport как в примере, приведенном в Spring reference documentation, убедитесь, что вы установили WebServiceTemplate с помощью унаследованного setWebServiceTemplate() метода.

@Autowired 
public CustomerClient (WebServiceTemplate customerClientWebServiceTemplate) { 
    setWebServiceTemplate(customerClientWebServiceTemplate); 
} 
Смежные вопросы