Jest w internecie cos porządnego o SOAPie? Musze wystawic serwisy soapowe, wygenerowac projekt przez wsdl i tak dalej ale w necie nic o tym nie ma, strzępki dokumentacji, ktora nie pomaga ;-; Będę wdzięczny za cokolwiek.
Chyba jednak nie umiesz szukać
Hint: nie dodawaj "porn" na końcu frazy wyszukiwania - wyjątkowo, w przypadku javy i soap to nie pomaga, a nawet przeszkadza.
Prosze:
Hej,
Byłem w podobnej sytuacji niedawno. Na całe szczęście musialem tylko przelotnie coś zrobić w soapie. W przeciwieństwie do reszty śmeiszków z forum zgodzę się, że tutoriali nie ma, a dokumentacja jest na tyle słaba, ze można uznać, że jej nie ma.
Najbardziej pomogło mi to: https://www.dataaccess.com/webservicesserver/numberconversion.wso - przykład requesta, repsonse i wsdla.
Jak zwykle baeldung pomaga:
https://www.baeldung.com/spring-boot-soap-web-service
https://www.baeldung.com/jax-ws
Jeżeli masz pełną dowolność implementacji to skoncentrowałbym się na spring-boot-soap-web-service, bo wystarczy, ze zdefiniujesz xsd (typy wiadomości), a spring już za Ciebie wygenruje pełengo wsdl'a. Z inncyh rzeczy, których nie rozumiałem to jak to się dzieje, że w soapie nie definiujemy endpointów w requescie. Rolę tego z tego, co pamiętam przejmuje namespace requesta, ale mogę zmyślać.
Nie dramatyzowałbym, że nie ma tutoriali w internecie. Nie wiem czy lenistwo i chęć podania wszystkiego na tacy w formie pigułki, czy obszerność tematu.
Tutorial: https://www.springboottutorial.com/creating-soap-web-service-with-spring-boot-web-services-starter
Książka: https://books.google.pl/books/about/Java_Web_Services.html?id=wiXOyXdvHO8C
Jeśli chcesz to zrozumieć: książka -> specyfikacje -> kod. Jeśli tylko coś wygenerować, bez zrozumienia jak to działa i zdać się na magię -> tutorial.
Patrząc z lotu ptaka:
XML - język opisu danych, które są łatwe do odczytu przez człowieka (samo opisujące nazwy elementów), jak i maszynę (dobrze zdefiniowana struktura dokumentu)
XML Schema - opisuje (za pomocą XMLa), jakie elementy mogą się pojawiać w dokumencie XML
WSDL - opisuje (w XMLu) funkcjonalność oferowaną przez usługę sieciową
- typy danych
- wiadomości
- typy portów (odpowiednik interfejsów programistycznych - grupowanie wiadomości/operacji; WHAT )
- bindingi (łączy typ portu z konkretnym protokołem - tu możesz powiązać serwis z SOAP, MQ, XML RPC, itp.; HOW)
- usługi (definiuje w jaki sposób usługa jest dostępna dla klientów=pod jakim endpointem - WHERE)
SOAP - protokół wymiany wiadomości. O ile WSDL opisuje usługę sieciową, to SOAP pozwala na komunikację z tą usługą.
Istotnym pojęciem jest przestrzeń nazw, która powiązana jest z jakąś schemą, która powołuje do istnienia znaczniki XML oraz nadaje im jakieś znaczenie, np.
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:foobar="http://www.myenterprajz.com/foobar-extension"
...
Tu masz 3 przestrzenie nazw wsdl
(definiuje porty, wiadomości, service, itd.), soap
(definiuje Envelope, Header, Body, ...), foobar
(jakiś Twój-szyty-na-miarę schemat).
Różne narzędzia mogą rozumieć te schematy i je obsługiwać (np. generować klienta z wsdla).
Specyfikacje:
- XML - https://www.w3.org/TR/xml/
- XML Schema - https://www.w3.org/TR/xmlschema11-1/ , https://www.w3.org/TR/xmlschema11-2/
- WSDL - https://www.w3.org/TR/wsdl/
- SOAP - https://www.w3.org/TR/soap/
(do tego różne rozszerzenia, np. podpis cyfrowy, szyfrowanie)
Od strony serwera możesz używać różnych rozwiązań do wystawienia SOAPowego serwisu: JAX-WS/Apache CXF/JAX-RS ale payload obsługujesz jako SOAPowy itp.
W podlinkowanym tutorialu masz przykład oparty o spring boota.
stanley123 napisał(a):
Jest w internecie cos porządnego o SOAPie? Musze wystawic serwisy soapowe, wygenerowac projekt przez wsdl i tak dalej ale w necie nic o tym nie ma, strzępki dokumentacji, ktora nie pomaga ;-; Będę wdzięczny za cokolwiek.
Masz jakiegoś popsutego googla
To miałem na trzeciej pozycji
https://docs.spring.io/spring-ws/site/reference/html/tutorial.html
Było też podejście produkowac WSDL z adnotowanych klas serwisu, jak mi się przypomni dokładnie to co używałem, to wkleję
Szukaj "soap wsdl code first java"