Spring Web Services
Spring Web Services нацелен на облегчение разработки SOAP-сервиса методом Сontract-Аirst, позволяя создавать легкоизменяемые web-сервисы путем манипулирования XML-настройками.
Быстрый старт

Введение

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 и имеет слабую связь между "договором" и реализацией.

Возможности

  • "Best Practice" как "Easy Practice": Spring-WS делает разработку "best practices" более легким. Он включает такие методологии, как WS-I basic profile, Сontract-Аirst и имеет слабую связь между "договором" и реализацией
  • Мощный маппинг: Вы можете распределять XML-запросы по объектам в зависимости от сообщения, SOAP Action заголовка или XPath выражения
  • Поддержка XML API: Входящие XML-сообщения могут быть обработаны стандартным JAXP API, например, DOM, SAX, StAX, а также JDOM, dom4j, XOM или другими подобными инструментами
  • Гибкий XML маршалинг: Object/XML Mapping поддерживает JAXB 1 и 2, Castor, XMLBeans, JiBX и XStream. И т.к. это отдельный модуль, вы можете его использовать также и не в web-сервисах
  • Использование вашего Spring опыта: Spring-WS использует контекст Spring-приложений во всех конфигурациях, которых позволяет Spring-разработчикам увеличить скорость разработки. Также, Spring-WS напоминает архитектуру Spring MVC
  • Поддержка WS-Security: WS-Security позволяет вам подписывать SOAP-сообщения, шифровать и расшифровывать их, а также проверять их подлинность
  • Интеграция с Acegi Security: Реализация WS-Security в Spring Web Services обеспечивает интеграцию с Spring Security. Это означает, что вы можете использовать уже существующие ваши конфигурации
  • Сборка Maven'ом: Это позволяет вам эффективно повторно использовать артефакты Spring Web Services в ваших Maven-проектах
  • Лицензия Apache: Вы можете уверенно использовать Spring-WS в ваших проектах

Быстрый старт

Загрузка
Maven
Gradle

Рекомендованный путь для начального использования spring-ws в вашем проекте с использованием системы управления зависимостями – скопировать фрагмент кода ниже и вставить в вашу конфигурацию сборки. Нужна помощь? Ознакомьтесь с нашими руководствами по созданию приложений с использованием Maven и Gradle.

<dependencies>
    <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-ws</artifactId>
        <version>2.2.0.RELEASE</version>
    </dependency>
</dependencies>

Конфигурация Spring-WS клиента

<beans xmlns="http://www.springframework.org/schema/beans">

<bean id="webServiceClient" class="WebServiceClient">
<property name="defaultUri" value="http://localhost:8080/WebService"/>
</bean>

</beans>

Добавление и использование WebServiceTemplate

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);
    }
}
comments powered by Disqus
Spring Web Services
Версия
Документация
Руководства к действию
Другие материалы