我已经使用Spring创建了一个Web Service。当在我的嵌入式tomcat服务器上运行它时,它工作得很好。然而,当我将它打包为一个JavaScript文件并使用java -jar
命令运行它时,我收到了这个异常。
我的服务发送了一个简单的soap请求,服务器的响应是:
"exception": "java.lang.NoClassDefFoundError",
"message": "javax/xml/soap/SOAPException",
字符串
这就是我在《 Postman 》中得到的回答。
任何想法,我可以寻找的问题。
8条答案
按热度按时间y0u0uwnf1#
在pom文件中添加以下内容解决了这个问题
字符串
hjzp0vay2#
JavaSE 8包含
java.xml.soap
包。JavaSE 9将包
javax.xml.soap
移动到模块java.xml.ws
。与JEE共享的模块(如
java.xml.ws
)包含在JavaSE 9中,但一个快速的解决方法是
$MY_JRE8_HOME/bin/java -jar my.jar
运行jar,或者java --add-modules java.xml.ws -jar my.jar
从长远来看,使用像
java.xml.ws
这样的模块的JavaSE项目必须像其他库一样显式地包含该模块。参见https://stackoverflow.com/a/46359097
参见JDK 9迁移指南:默认情况下未解析与JEE共享的模块
(在https://spring.io/guides/gs/producing-web-service/上复制了NoClassDefError和压缩SOAP Web服务项目的解决方法)
wa7juj8i3#
是的,在Java 11中,java.xml.soap被完全删除。java.lang.NoClassDefFoundError:javax/xml/soap/SOAPException 可以通过添加以下依赖项来删除。
字符串
但是稍后,您将遇到 javax.xml.soap.SOAPException:Unable to create SAAJ meta-factory:Provider com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl not found。这可以通过添加以下依赖项来解决。
型
希望,这有帮助!
dgtucam14#
添加以下依赖项,然后它应该可以工作
字符串
请参考以下链接以获取运行的代码(SpringBootSOAPWS + Java10)Github- SpringBoot Soap ServerGithub- SpringBoot Soap Client
e3bfsja25#
我导入了这个来解决这个问题:https://mvnrepository.com/artifact/javax.xml.soap/javax.xml.soap-api/1.4.0
nfzehxib6#
添加此依赖项将解决此问题。
字符串
raogr8fs7#
缺少JAX-WS依赖库“jaxws-api.jar”。请尝试:
compile group: 'javax.xml.ws', name: 'jaxws-api', version: '2.3.1'
-对于gradle或:字符串
nfeuvbwi8#
我知道这已经对以上所有人关闭了,但我仍然面临这个问题,即使我已经在classpath中添加了jakarta-xml.soap-api和saaj jar。
我缺少的任何东西,使它的工作。尝试使用javax-.xml-soap-API以及而不是jaksocket jar,但仍然相同的错误。不知何故,它无法识别jar。