Spring Web Services (Spring-WS) - это продукт Spring-сообщества, основной целью которого является создание документоориентированных web-сервисов. Spring Web Services нацелен на облегчение разработки SOAP-сервиса методом Сontract-Аirst, позволяя создавать легкоизменяемые web-сервисы путем манипулирования XML-настройками. Продукт основан на Spring, чтопозволяет вам изпользовать такие возможности, как DI, и это будет неотъемлемой частью вашего web-сервиса.
Использовать Spring-WS можно в разных целях, но в основном потому, что находят в других SOAP-инструментах недостатки, когда дело доходит до "best practices" при реализации SOAP-сервиса. Spring-WS делает разработку "best practices" более легким. Он включает такие методологии, как WS-I basic profile, Сontract-Аirst и имеет слабую связь между "договором" и реализацией.
Рекомендованный путь для начального использования spring-ws
в вашем проекте
с использованием системы управления зависимостями – скопировать фрагмент кода ниже и вставить
в вашу конфигурацию сборки. Нужна помощь? Ознакомьтесь с нашими руководствами по созданию приложений
с использованием Maven и
Gradle.
<dependencies>
<dependency>
<groupId>org.springframework.ws</groupId>
<artifactId>spring-ws</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
</dependencies>
<beans xmlns="http://www.springframework.org/schema/beans">
<bean id="webServiceClient" class="WebServiceClient">
<property name="defaultUri" value="http://localhost:8080/WebService"/>
</bean>
</beans>
public class WebServiceClient {
private static final String MESSAGE = '<message xmlns="http://tempuri.org">Hello World</message>';
private final WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
public void setDefaultUri(String defaultUri) {
webServiceTemplate.setDefaultUri(defaultUri);
}
// send to the configured default URI
public void simpleSendAndReceive() {
StreamSource source = new StreamSource(new StringReader(MESSAGE));
StreamResult result = new StreamResult(System.out);
webServiceTemplate.sendSourceAndReceiveToResult(source, result);
}
// send to an explicit URI
public void customSendAndReceive() {
StreamSource source = new StreamSource(new StringReader(MESSAGE));
StreamResult result = new StreamResult(System.out);
webServiceTemplate.sendSourceAndReceiveToResult("http://localhost:8080/AnotherWebService",
source, result);
}
}