web-dev-qa-db-de.com

java.lang.NoClassDefFoundError: javax/xml/soap/SOAPException

Ich habe einen Web-Service mit Spring erstellt. Es funktioniert gut, wenn es auf meinem eingebetteten Tomcat-Server ausgeführt wird. Wenn ich es jedoch als JAR-Datei packe und mit dem Befehl Java -jar ausführe, erhalte ich diese Ausnahme.

Mein Dienst sendet eine einfache Seifenanfrage und die Serverantwort lautet:

 "exception": "Java.lang.NoClassDefFoundError",
    "message": "javax/xml/soap/SOAPException",

Das ist die Antwort, die ich beim Postman bekomme.

Irgendwelche Ideen, wo ich nach dem Problem suchen kann.

7
grangos

JavaSE 8 enthält das Paket Java.xml.soap.
JavaSE 9 hat das Paket javax.xml.soap in das Modul Java.xml.ws verschoben.
Mit JEE gemeinsam genutzte Module (wie Java.xml.ws) sind in JavaSE 9 enthalten, jedoch
- veraltet zum Entfernen aus einer zukünftigen Version von JavaSE und
- nicht im Standardmodulpfad .

Eine schnelle Problemumgehung ist entweder
- das Glas mit JRE 8 ausführen: $MY_JRE8_HOME/bin/Java -jar my.jar oder
- fügen Sie ein Modul für JRE 9 hinzu: Java --add-modules Java.xml.ws -jar my.jar

Längerfristig müssen JavaSE-Projekte, die Module wie Java.xml.ws verwenden, das Modul explizit wie andere Bibliotheken einschließen.

Siehe https://stackoverflow.com/a/46359097
Siehe JDK 9 - Migrationshandbuch: Mit JEE freigegebene Module werden standardmäßig nicht aufgelöst

(Reproduzierter NoClassDefError und Problemumgehungen mit einem gezippten SOAP - Webserviceprojekt unter https://spring.io/guides/gs/producing-web-service/ )

7
user9712582

Ich habe dieses importiert, um das Problem zu lösen: https://mvnrepository.com/artifact/javax.xml.soap/javax.xml.soap-api/1.4.0

4
McCoy

Füge die folgenden Abhängigkeiten hinzu, es sollte dann funktionieren

<dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>com.Sun.xml.bind</groupId>
        <artifactId>jaxb-core</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>com.Sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>com.Sun.xml.messaging.saaj</groupId>
        <artifactId>saaj-impl</artifactId>
        <version>1.5.0</version>
    </dependency>
    <dependency>
        <groupId>javax.xml.ws</groupId>
        <artifactId>jaxws-api</artifactId>
        <version>2.2.6</version>
    </dependency>

Unter den folgenden Links finden Sie einen laufenden Code (SpringBootSOAPWS + Java10) Github-SpringBoot Soap ServerGithub-SpringBoot Soap Client

0
Rish

Durch Hinzufügen der folgenden Informationen in der POM-Datei wurde das Problem behoben

<!-- https://mvnrepository.com/artifact/javax.xml.soap/javax.xml.soap-api -->
<dependency>
    <groupId>javax.xml.soap</groupId>
    <artifactId>javax.xml.soap-api</artifactId>
    <version>1.4.0</version>
</dependency>
0
Jithin U. Ahmed