ПредишенСледващото

Този урок обхваща стъпка по стъпка създаването на сървъра SOAP уеб услуги с помощта на пролет.

Това създавате

Ще се създаде сървър, който предоставя данни от различни европейски страни, като се използва уеб услугата WSDL сапун.

За един прост пример, който ще използвате фиксираните данни на Обединеното кралство, Испания и Полша.

Какво ви трябва

Как да направя този урок

Подобно на повечето уроци през пролетта, можете да започнете от нулата и да изпълнява всяка стъпка, или да прескочите основните стъпки, които вече са запознати. Във всеки случай, в крайна сметка ще се получи работещ код.

Когато сте готови. Можете да сравните резултатите, получени с примерни GS-производство-уеб-услуга / пълна.

Създаване на проекта

За да започнете, трябва да се създаде основен изграждане скрипт. Можете да използвате всеки натрупване система, която ви харесва да се изгради proetov пролет, но в този урок ние считаме, кодът за работа с Gradle. Ако не сте запознати с това, свържете се с правилното урок проект Java-Build използване Gradle.

Създаване на структурата на директориите

В избраната директория на проекти, създаване на следната структура директория; Например, командата защитен режим -p SRC / основния / Java / здравей за * Никс системи:

Създаване на монтаж файл Gradle

По-долу е първоначалната Gradle изгради файл. Ако използвате Пролет Tool Suite (КС). можете да импортирате урок направо от него.

Ако се вгледате в pom.xml. ще откриете, че версията за Maven-компилатор-плъгин. Като цяло, това не се препоръчва. В този случай, той е предназначен за решаване на проблеми, свързани с нашия CI система, която по подразбиране е на стария (преди Java 5) версия на плъгина.

Пролет Boot Gradle плъгин предлага много полезни функции:

  • Той събира всички jar'y на CLASSPATH и събира една единствена, изпълним "über-буркан", която го прави по-удобен за изпълнение и доставка на вашите услуги
  • Той търси главен метод публично статично невалидни (), като знак на изпълнимия класа
  • Тя осигурява вградена резолюция зависимост, с конкретни номера на версията за sootvetsvujushchih Пролет Boot зависимости. Можете да замените всяка версия на това, което искате, но това ще бъде по подразбиране за избрания набор от варианти на Boot

Добавянето на пролет-WS зависимост

Създаден проект трябва да се включите в изграждането на файлове в зависимост пролетно-WS-ядро и wsdl4j.

Създаване на XML схема за задаване на домейна

уеб услуга домейн е описан в XML Schema файл (XSD), който е пролет-WS автоматично ще бъде изнесено в WSDL.

Създаване на XSD файл с операции за връщане име. население. капитал и валута.

Генериране на класове на домейни, базирани на XML Schema

Sledubschim стъпка е да се генерира Java класове от файла XSD. Най-добрият подход е да ги създадете в автоматичен процес на сглобяване с помощта на Maven или Gradle щепсел.

Конфигурацията на приставката Maven:

Генерираните класове ще бъдат поставени в целевата / генерирани-източници / jaxb / директория.

Същото нещо с Gradle:

Следващата стъпка - добавяне getJaxb задача. Gradle необходимо за генериране на Java класове:

защото Gradle JAXB не плъгин (все още), тя включва мравка проблема, което прави файла монтаж е малко по-сложно в сравнение с Maven изгради файл.

И в двата случая, на процеса на генериране на обектите, включени в жизнения цикъл на събранието, така че отделните етапи на процеса за стартиране не се изисква.

Създаване на хранилище

За да се предоставят данни за интернет услуги, създаване на хранилището. В този урок ще ви създаде проста хранилище с набора от данни.

Създаване на изходните точки услуга

За да създадете излизане обслужване точки, трябва само POJO с няколко Пролет WS пояснения, за да се справят с входящи заявки за сапун.

@Endpoint регистрира Пролет WS клас като потенциален кандидат за обработка на входящите съобщения SOAP

@PayloadRoot използвате Пролет WS, за да изберете метод манипулатор на базата на пространство от имена и localPart Публикации

@RewuestPayload показва, че входящо съобщение е свързан с метод искане параметър

@ResponsePayload създава подходяща стойност на стойността, върната от полезната част от отговора.

Във всички тези кодови фрагменти, io.spring.guides класове ще хвърлят компилация грешка в IDE, стига да не останете на задачата за създаване на класове на домейните, базирани на WSDL.

Конфигуриране на боб уеб услуга

Създаване на нова класа, която е свързана с конфигурацията на пролетния WS кошчета:

  • Пролет WS използва различен вид сървлет за обработка на SOAP съобщения: MessageDispatcherServlet. Важно е да се приложи и да го инсталирате ApplicationContext. Без това, Пролет WS Пролет боб няма да се засичат автоматично
  • Определяйки това като dispatcherServlet на боклук. той замества Пролет Boot бин подразбиране DispatcherServlet
  • DefaultMethodEndpointAdapter се нагажда към програмния модел анотации Пролет WS. Това дава възможност да се използват най-различни анотации, като @Endpoint. споменато по-рано
  • DefaultWsdl11Definition осигурява стандарт WSDL 1.1 използване XsdSchema

Създаване на изпълним молбата

Въпреки факта, че пакетът от тази услуга може да бъде част от уеб-приложения и файлове ВОЙНА, прост подход показани по-долу създава отделна самостоятелна програма. Вие се опаковат всичко в един-единствен изпълним JAR-файл, който минава през познатия стар главен (Java-метод). По пътя, който използвате вградената поддръжка за пролетния Tomcat сървлет контейнер като HTTP по време на работа, вместо разполагане на копие от трета страна.

Основните () трансфери метод за контрол на спомагателната клас SpringApplication. където Application.class - аргумент го стартирате () метод. Това казва Пролет на четене анотации метаданни на заявлението и неговото управление като компонент в контекста на пролетното заседание на приложение.

Резюме @ComponentScan казва Spring'u рекурсивно търсене на пакета здравей и неговите потомци класове отбелязани пряко или косвено Пролет анотация @Component. Тази директива гарантира, че пролет ще намерите и да се регистрирате CountryRepository и CountriesEndpoint. защото тя маркира @Controller. което, от своя страна, е един вид @Component анотация.

Резюме @EnableAutoConfiguration превключва на поведението по подразбиране е приемливо, въз основа на съдържанието на вашия CLASSPATH. Например, тъй като приложение зависи от вградения версия на Tomcat (котарак-вграждане-core.jar), Tomcat сървъра е инсталиран и конфигуриран на поведението по подразбиране е приемливо от ваше име. И тъй като заявлението също зависи от Spring MVC (пролет-webmvc.jar), Spring MVC DispatcherServlet конфигуриран и регистриран за да ви - web.xml не е необходим! Автоматична конфигурация полезен и гъвкав механизъм. Прегледайте документацията за API.

Изграждане изпълним JAR

Вие можете да получите един изпълним JAR-файл, който съдържа всички необходими зависимости, класове и ресурси. Това го прави лесно да се зареди, версии и въвеждане на услугата като приложение през целия период на развитие за най-различни среди, и така нататък.

След това можете да стартирате JAR-файл:

Ако използвате за Maven, можете да стартирате приложението, използвайки MVN пролетно-зареждане: тичам. или може да се изгради на заявлението с MVN чист пакет JAR и тече нещо като това:

Процедурата, описана по-горе създава изпълним JAR. Вместо това може да събира класически WAR-файл.

Работещи приложения

Ако използвате Gradle, можете да изпълните вашата услуга от командния ред:

Ако използвате Maven, можете да започнете работата си с по следния начин: MVN чист пакет Java -jar целеви / GS-производство-уеб-услуги 0.1.0.jar.

Освен това, можете да стартирате вашата услуга директно от Gradle нещо като това:

С MVN - MVN пролетно-зареждане: тичам.

тестване прилагането

Когато приложението се стартира, можете да го тествате. Създаване request.xml файл. поискване SOAP съдържа следното:

Има няколко начина, за да тествате интерфейса на сапун. Можете да използвате нещо като SoapUI или просто да използвате инструменти за командния ред, ако имате * никс / Mac система, както е показано по-долу:

В резултат на това трябва да видите следния отговор:

Честито! Вие току-що създадохме SOAP услуга, използвайки Пролет Web Services.

С оригиналния текст на урока може да се намери на spring.io.

Вземи кода

Подкрепете проекта - споделете линка, благодаря!