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.
 

KonradN

Super-Moderator
Mitarbeiter
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.
 

OnDemand

Top Contributor
Danke, ganz so einfach ist es dann doch nicht wie es klingt :D
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 :D
 

OnDemand

Top Contributor
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.
 

KonradN

Super-Moderator
Mitarbeiter
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.
 

OnDemand

Top Contributor
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 ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M [SOAP] - Klasse aus WSDL ausschließen Allgemeine Java-Themen 2
J Soap Client mit mehreren URLs in Servlets Allgemeine Java-Themen 0
P Schnittstelle über Webservice SOAP Allgemeine Java-Themen 11
J Nach SOAP Protokollierungen Änderung vornehmbar? Allgemeine Java-Themen 2
Meeresgott Best Practice Mini REST-Schnittstelle Allgemeine Java-Themen 4
OnDemand REST Client programmierens Allgemeine Java-Themen 4
C Nested JSON in Java ansprechen [Wordpress Rest Api] Allgemeine Java-Themen 26
RalleYTN REST API ResponseType application/pdf lesen Allgemeine Java-Themen 0
I REST Webservice getFile Allgemeine Java-Themen 2
P REST- Services GET/PUT/POST/DELETE Allgemeine Java-Themen 6
Tobse HTTP REST API's in SQL schreiben Allgemeine Java-Themen 1
G REST- Object darstellung Allgemeine Java-Themen 6
F HTTP REST und DELETE Allgemeine Java-Themen 9
G REST Client / URL Parser Allgemeine Java-Themen 2
C Sound stoppt Rest & Lautstärke-Problem Allgemeine Java-Themen 4
M Spring Locking Allgemeine Java-Themen 13
M Spring Locking Allgemeine Java-Themen 6
M Spring Security Allgemeine Java-Themen 2
OnDemand Übersetzung Spring mit Iln8 Allgemeine Java-Themen 0
OnDemand Mit Jenkins gebaut: NPE Spring Context Allgemeine Java-Themen 7
N Value Wert aus HTML-Button mittels thymeleaf spring an java übergeben Allgemeine Java-Themen 2
8u3631984 Spring Component mit Builder Allgemeine Java-Themen 20
bueseb84 Spring Boot Entity mit Liste Allgemeine Java-Themen 4
A Spring und Hibernate Allgemeine Java-Themen 2
T Was ist Spring? Allgemeine Java-Themen 9
G Spring Allgemeine Java-Themen 7
Tom299 eine Konstante in Spring definieren? Allgemeine Java-Themen 4
M Spring oder nicht, das ist hier die Frage Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben