SOAP Rest Spring Boot

OnDemand

Top Contributor
Hallo zusammen,

habe aktuell eine Anfrage ob wir einen SOAP Service konsumieren können. Hab ehrlich gesagt keinen Plan davon und wenig Lust drauf da in einigen Monaten (vielleicht auch erst kommendes Jahr) eine REST API kommt. Dann hätte ich jetzt doppelte Arbeit.

Hab mir das mal ganz grob abgeschaut, habe einen .wsdl Link erhalten. Wenn ich es richtig verstehe, kann ich daraus die Pojos generieren. Die Tutorials welche ich jetzt sah waren alle recht kompliziert. Hat von euch jemanden vielleicht einen tollen Tipp, wie man möglichst einfach via SOAP kommunizieren kann in Zusammenarbeit mit Spring Boot? Vielleicht gibts noch irgendwelche Frameworks die ich mir unbedingt ansehen muss.
 
Also das ist eigentlich wenig komplex, da eben aus der wsdl alles notwendige generiert wird.

Lediglich bezüglich der möglichen Verbindungseinstellungen gilt: diese sind nicht wirklich Teil der wsdl und da kann es dann zu Problemen kommen wenn der Service irgendwelche besonderen Einstellungen hat. Aber bei so 08/15 SOAP Webservices ist es sehr einfach:

Generieren und dann einfach nutzen 🙂

Wenn es eine einmalige Generierung bleiben soll, dann hilft Dir ggf.
https://docs.oracle.com/javase/6/docs/technotes/tools/share/xjc.html oder
https://cxf.apache.org/docs/wsdl-to-java.html weiter.

Application Server haben da teilweise auch Tools für, siehe z.B. https://www.ibm.com/docs/en/was/8.5...d.multiplatform.doc/ae/twbs_jaxwsfromwsdl.htm für Webshere.

Und wenn man das im Maven Projekt automatisch haben will, dann gäbe es da auch Plugins für:
https://github.com/highsource/maven-jaxb2-plugin (Das ruft dan auch nur xjc auf.)

Zur Nutzung der generierten Sourcen braucht man dann die Abhängigkeiten also eine jax-ws implementation wie halt jaxb oder xcf.
 
Danke, ganz so einfach ist es dann doch nicht wie es klingt 😀
Dache ich lass mir mal den Code generieren, hab mit die wsdl in IntelliJ importiert und dann mal "Code from wsdl" Funktion ausgeführt:

Fehler: Hauptklasse org.apache.axis.wsdl.WSDL2Java konnte nicht gefunden oder geladen werden

Braucht wohl doch noch ein wenig Deep Dive. Warum nutzen so viele nicht einfach REST, das ist doch viel einfacher 😀
 
Mit Axis 2 hat es mir jetzt 2 Klassen generiert mit drölfhunder inneren Klassen das ist nicht besonders übersichtlich 😉 Da gibts bestimmt ne Einstellung, aber ich habe schon mal Code.
 
SOAP war halt vor REST.

Und bezüglich der Fehlermeldung: Ich nehme an, dass Du das Jakarta EE: Web Services (JAX-RS) Plugin installiert und genutzt hast?
Dieses musst Du konfigurieren: In Settings und da dann Tools -> Web Services musst Du eintragen, wo die Apache Axis 2 Libraries sind und ggf. auch cxf. Ich bin mir jetzt nicht sicher, was er da alles braucht um richtig zu funktionieren.

Aber ohne da die Pfade zu setzen kann er die Klassen natürlich nicht finden.

Was generiert wird hängt natürlich massiv vom WSDL ab. Wenn es entsprechendes beschrieben wird, dann wird das auch generiert. Ohne wirkliche Details wird da also auch niemand sagen können, ob das so richtig oder zu komplex ist oder ob man da noch mit irgend einer Einstellung etwas machen muss. Generell sollte es Dir egal sein können, was geau da generiert wurde, denn Du nutzt es nur. Es sollte keine Notwendigkeit geben, da noch etwas manuell anzupassen.
 
Danke mit den Pfaden hat es geklappt 🙂 Wie zum Henker nutze ich das jetzt? Müssten da jetzt auch Methoden generiert worden sein welche auf den Service zugreifen, sodass ich diese nur mit den Daten zur Authentifizierung aufrufen muss? Wäre ja genial. Scheint langsam etwas Licht ins Dunkel zu kommen 😉
 

Zurück
Oben