Létrehozása szappan web-szolgáltatás, tavaszi orosz!

Ez a lecke a borító lépésről lépésre létrehozása SOAP web szolgáltatások szerver segítségével Spring.

Hogy hozzon létre

Akkor létrehoz egy szervert, amely adatokat a különböző európai országokban, a WSDL SOAP webes szolgáltatás.

Egy egyszerű példa, akkor használja a rögzített adatokat az Egyesült Királyságban, Spanyolországban és Lengyelországban.

Amire szüksége

Hogyan szedjem ezt a leckét

Mint a legtöbb órák Spring, akkor nulláról indul, és egyes lépéseket vagy hagyja az alapvető lépéseket, hogy már ismerik. Mindenesetre, akkor előbb-utóbb működő kód.

Ha befejezte. Össze lehet hasonlítani a kapott eredményt a minta gs-termelő-web-szolgáltatás / teljes.

Beállítása a projekt

Kezdeni, meg kell, hogy hozzanak létre egy alap szkriptet. Használhatja bármilyen épít rendszert szeretne építeni proetov Spring, de ebben a leckében úgy a kódot, hogy működjön együtt Gradle. Ha nem ismeri fel automatikusan, ellenőrizze a megfelelő tanulságot Java-Build projekt segítségével Gradle.

Létrehozása Directory felépítése

A kiválasztott projekt könyvtárba hozza létre a következő könyvtár felépítése; Például a parancs mkdir -p src / main / java / szia * nix rendszerek:

Hozzon létre egy összeállítási fájl Gradle

Az alábbiakban az eredeti Gradle építeni fájlt. Ha ön használ Spring Tool Suite (STS). importálhat egy leckét jobb belőle.

Ha megnézzük a pom.xml. azt találjuk, hogy a verzió a maven-compiler-plugin. Általában ez nem ajánlott. Ebben az esetben az a célja, hogy megoldja a problémákat, a mi CI rendszer, amely alapértelmezés szerint az a régi (mielőtt Java 5) változata a plugin.

Tavaszi boot Gradle bővítmény számos hasznos funkciók:

  • Ő gyűjti össze az összes jar'y classpath és gyűjti egyetlen végrehajtható „über-jar”, ​​hogy kényelmesebbé teszi a végrehajtás és a szállítás a szolgáltatás
  • Ő keres public static void main () metódus, jeleként a végrehajtható osztály
  • Ez egy beépített függőség, különös verziószámok sootvetsvujushchih Spring boot függőségeket. Ön felülbírálhatja bármely változata, amit akar, de ez lesz az alapértelmezett a kiválasztott sor változatai boot

Hozzáadása Spring-WS függően

Alkotó projekt akkor tartalmaznia kell az építmények fájl függően rugós ws-core és wsdl4j.

Létrehozása XML séma határozza meg a domain

webes szolgáltatás domain leírt XML séma fájl (XSD), amely Spring-WS automatikusan exportálni WSDL.

Hozzon létre egy XSD fájlt műveletek visszatérni nevét. lakosság számára. tőke és a pénznemet.

Létrehoz tartomány alapján osztályokba XML-séma

Sledubschim lépés generál Java osztályok az XSD fájlt. A legjobb megoldás az, hogy hozzon létre őket automatikus összeszerelési folyamat segítségével Maven vagy Gradle dugót.

A konfiguráció a maven bővítmény:

A létrehozott osztályok kerülnek a cél / generated-források / JAXB / könyvtárban.

Ugyanaz a Gradle:

A következő lépés - hozzátéve getJaxb feladat. Gradle előállításához szükséges Java osztályok:

mert Gradle JAXB nincs plugin (még), ez magában foglalja a hangya probléma, ami a szerelvény fájl egy kicsit bonyolultabb, összehasonlítva a Maven build fájlt.

Mindkét esetben a folyamat generáló tartozó objektumok életciklusának a szerelvény, így az egyes lépéseket a folyamat elindításához nem szükséges.

Létrehozása adattár

Ahhoz, hogy a webes szolgáltatás adatok A tároló létrehozása. Ebben a leckében egy egyszerű adattár az adathalmaz.

Létrehozunk egy szolgáltatási kilépési pontok

A szolgáltatás létrehozásához kilépési pontot, csak akkor kell egy POJO néhány Spring WS kommentárok a beérkező SOAP kéréseket.

@Endpoint regisztrálja Spring WS osztály, mint potenciális jelölt a beérkező SOAP üzenetek

@PayloadRoot használja Spring WS kiválasztásához kezelő eljárás névtér és Localpart üzenetét

@RewuestPayload azt jelzi, hogy egy beérkező üzenet van leképezve kérési módszer

@ResponsePayload teremt megfelelő értéket által visszaadott érték a hasznos része a választ.

Mindezen kódrészletek io.spring.guides osztályok fog dobni egy fordítási hiba a IDE, amíg nem fut a feladatot generál a domain alapján osztályokba WSDL.

Konfigurálása bab webes szolgáltatás

Hozzon létre egy új osztályt, amely kapcsolatban áll a konfiguráció Spring WS urnák:

  • Spring WS használ egy másik típusú servlet feldolgozására SOAP üzenetek: MessageDispatcherServlet. Fontos, hogy végre, és telepíteni ApplicationContext. Enélkül Spring WS tavaszi babot nem érzékeli automatikusan
  • Terming ezt a bin dispatcherServlet. helyettesíti Spring boot bin alapértelmezett DispatcherServlet
  • DefaultMethodEndpointAdapter rááll a programozási modell kommentárok Spring WS. Ez lehetővé teszi, hogy használja a különböző jelölések, mint @Endpoint. a korábban említett
  • DefaultWsdl11Definition egy szabványos WSDL 1.1 használatával XsdSchema

Létrehozása futtatható alkalmazás

Annak ellenére, hogy a csomag ezt a szolgáltatást nem lehet része a web-alkalmazások és WAR fájlok egyszerű megközelítést alábbi létrehoz egy külön önálló alkalmazás. Te csomag mindent egyetlen futtatható JAR-fájl, amely végigfut a megszokott régi fő (Java-módszer). Az út során, akkor használja a beépített támogatása Spring Tomcat servlet konténer HTTP futási helyett telepítésével egy harmadik fél példányt.

fő () módszer átadja a vezérlést a kiegészítő osztály SpringApplication. ahol Application.class - érvet run () metódust. Ez azt mondja Spring olvasni metaadatok kommentárok az alkalmazási és irányítási összetevőjeként tavaszi alkalmazás keretében.

Abstract @ComponentScan mondja Spring'u rekurzív keresés a csomag szia és utódai osztályok jelölt közvetlenül vagy közvetve Spring kommentár @Component. Ez az irányelv biztosítja, hogy a tavaszi fogja találni, és regisztrálja CountryRepository és CountriesEndpoint. mivel ekkor @Controller. ami viszont egyfajta @Component kommentár.

Abstract @EnableAutoConfiguration átvált az alapértelmezett viselkedés elfogadható, tartalma alapján a classpath. Például, mivel alkalmazása attól függ, hogy a beágyazott változata Tomcat (tomcat-beágyazni-core.jar), Tomcat kiszolgáló telepítve és konfigurálva van az alapértelmezett viselkedés elfogadható az Ön nevében. és mivel Az alkalmazás is függ Spring MVC (rugós webmvc.jar), Spring MVC DispatcherServlet kialakítva és regisztrálva akkor - web.xml nem szükséges! Autokonfiguráció hasznos és rugalmas mechanizmus. Lásd az API dokumentációt.

Építsd egy futtatható JAR

Tudod gyűjteni egy futtatható JAR-fájlt, amely tartalmazza az összes szükséges függőségeket, osztályok és az erőforrásokat. Ez megkönnyíti betölteni, verziókövetés és telepítése a szolgáltatást egy alkalmazás az egész fejlesztési időszakban a különböző környezetekben, és így tovább.

Akkor lehet futtatni a JAR-fájl:

Ha használja a Maven, akkor az alkalmazás futtatásához használja MVN tavaszi-boot: futni. vagy meg lehet építeni az alkalmazást MVN tiszta csomag JAR és futtatni valami ilyesmi:

A fent leírt eljárás egy olyan végrehajtható fájlt JAR. Akkor inkább gyűjteni klasszikus WAR-fájlt.

futó alkalmazások

Ha Gradle, futtathatja a szolgáltatást a parancssorból:

Ha Maven, el tudja indítani a szolgáltatást a következő módon: MVN tiszta csomag java -jar target / gs-termelő-web-service-0.1.0.jar.

Azt is megteheti, indítsa el a szolgáltatást közvetlenül Gradle valahogy így:

A MVN - MVN rugós boot: futni.

teszteli a kérelem

Amikor az alkalmazás elindul, akkor kipróbálni. Készítsen request.xml fájlt. SOAP kérés a következőket tartalmazza:

Számos módja van, hogy teszteljék a SOAP interfész. Használhatja valami hasonló SoapUI vagy egyszerűen csak használja a parancssori eszközöket, ha van egy * nix / Mac rendszert, az alábbiak szerint:

Ennek eredményeként, akkor olvassa el a következő választ:

Gratulálunk! Ön most létrehozott egy SOAP szolgáltatás használatával Spring Web Services.

Az eredeti szöveg a lecke megtalálható spring.io.

Szerezze meg a kódot