[ASOS | Cvičenie] 5 - SOAP klient, WSDL best practices
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Cvičenie nadväzuje na predchádzajúcu prácu s WSDL a XSD schémou a ukazuje, ako existujúci SOAP endpoint prepojiť so Springom pomocou dependency injection cez XML konfiguráciu bínov. Business logika sa presúva z endpointu do samostatnej servisnej vrstvy (BookService/BookServiceImpl), pričom endpoint sa stará už len o publikovanie webovej služby a delegovanie volaní. Demonštruje sa aj rozdiel medzi constructor-based a setter-based injekciou v kontexte JAX-WS anotácie WebService, ktorá vyžaduje bezparametrický konštruktor. Testovanie funkčnosti sa vykonáva pomocou nástroja SOAP UI, kde sa importuje WSDL a generujú testovacie requesty. Na záver sa rieši problém s dátumami — XJC generuje XMLGregorianCalendar namiesto moderných tried z balíka java.time, čo sa rieši vytvorením vlastného JAXB bindingu v priečinku resources/jaxb pre konverziu medzi String/XML reprezentáciou a LocalDate.
- - Pridanie Spring Context závislosti do pom.xml a prepojenie SOAP endpointu so Springom
- - Presun business logiky zo SOAP endpointu do samostatnej servisnej vrstvy (BookService, BookServiceImpl)
- - Konfigurácia Spring bínov (XML config) vrátane injektovania servisy do endpointu cez konštruktor
- - WebService anotácia vyžaduje bezparametrický konštruktor – riešenie cez setter-based injekciu ako alternatíva
- - Testovanie SOAP endpointu pomocou nástroja SOAP UI a generovanie test requestov z WSDL
- - Riešenie chyby 'Address already in use' pri kolízii portu 8080
- - Vytvorenie vlastného JAXB bindingu na konverziu XMLGregorianCalendar na LocalDate z java.time balíka
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky