web-dev-qa-db-ja.com

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

Springを使用してWebサービスを作成しました。私の組み込みTomcatサーバーでそれを実行するとき、それはうまく働きます。ただし、JARファイルとしてパッケージ化し、Java -jarコマンド、私はこの例外を受け取っています。

私のサービスは単純な石鹸要求を送信し、サーバーの応答は次のとおりです。

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

それが私が郵便配達で受け取る応答です。

問題を探すことができるアイデア。

14
grangos

JavaSE 8には、パッケージJava.xml.soapが含まれています。
JavaSE 9はパッケージjavax.xml.soapをモジュールJava.xml.wsに移動しました。
JEEと共有されるモジュール(Java.xml.wsなど)はJavaSE 9に含まれていますが、
- 非推奨 将来のバージョンのJavaSEからの削除、および
- デフォルトのモジュールパス上にない

簡単な回避策は、
-JRE 8でjarを実行します:$MY_JRE8_HOME/bin/Java -jar my.jar、または
-JRE 9のモジュールを追加します:Java --add-modules Java.xml.ws -jar my.jar

長期的には、Java.xml.wsなどのモジュールを使用するJavaSEプロジェクトには、他のライブラリと同様にモジュールを明示的に含める必要があります。

https://stackoverflow.com/a/46359097 を参照してください
JDK 9移行ガイド:デフォルトで解決されないJEEと共有されるモジュール 」を参照

(zipでNoClassDefErrorと回避策を再現SOAP Webサービスプロジェクト https://spring.io/guides/gs/produce-web-service/

13
user9712582

問題を整理するためにこれをインポートしました: https://mvnrepository.com/artifact/javax.xml.soap/javax.xml.soap-api/1.4.

9
McCoy

Pomファイルに以下を追加すると問題が解決しました

<!-- 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>
5
Jithin U. Ahmed

次の依存関係を追加します。それで動作するはずです

<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>

実行中のコードについては、次のリンクを参照してください(SpringBootSOAPWS + Java10) Github- SpringBoot Soap ServerGithub- SpringBoot Soap Client

0
Rish