1. 背景
今日、新しいデバイスで以前のプロジェクトを開始したところ、開始できず、エラーが報告されました。
java.lang.NoClassDefFoundError : javax/xml/soap/SOAPException
2. 理由
ネットで調べたところ、おおよその理由は、現在の機器では比較的新しいJDK 11を使用しているが、クラスはJDK8で使用されているjava.xml.soap.SOAPException
ためです。JDK9以降では削除されているため、エラーが発生していました。
3. 解決策
幸いなことに、解決策はまだあります。JDK 開発チームは穴を掘った後、それを埋める必要があります。
この依存関係を手動で導入できます。
<dependency>
<groupId>javax.xml.soap</groupId>
<artifactId>javax.xml.soap-api</artifactId>
<version>1.4.0</version>
</dependency>
ただし、この依存関係のみが導入された場合、スタートアップ プロジェクトはエラーを報告します。
javax.xml.soap.SOAPException: Unable to create SAAJ meta-factory: Provider com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl not found
この時点で、2 番目の依存関係も導入する必要があります。
<dependency>
<groupId>com.sun.xml.messaging.saaj</groupId>
<artifactId>saaj-impl</artifactId>
<version>1.5.1</version>
</dependency>
mavenを更新するのを忘れないでください〜
この後、再起動して起動すればOKです〜
4. 参考文献
https://www.likecs.com/ask-465155.html
https://stackoverflow.com/questions/48626824/java-lang-noclassdeffounderror-javax-xml-soap-soapException