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
从长远来看,使用类似模块的JavaSE项目java.xml.ws
必须像其他库一样明确地包含模块。
请参阅https://stackoverflow.com/a/46359097
请参阅JDK 9迁移指南:与JEE共享的模块默认情况下未解析
(在https://spring.io/guides/gs/producing-web-service/上重现了NoClassDefError和压缩SOAP Web服务项目的变通方法)