【发布时间】:2023-02-11 22:55:52
【问题描述】:
我们的产品建立在 eclipse RCP 和 OSGi 框架之上。
我已经将我的代码从 JDK1.8 升级到 JDK11。在代码中,我使用 MessageFactory.newInstance().createMessage() 创建了一个 SOAP 消息,但在 JDK11 上运行时我遇到了问题。
javax.xml.soap.SOAPException: Unable to create message factory for SOAP: Unable to create SAAJ meta-factoryProvider com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl not found
我知道 JDK11 没有包 com.sun.xml.messaging.saaj.soap,它在 JDK1.8 中更早。所以我为 saaj-impl-1.5.1 添加了一个依赖项以及它所需的传递依赖项。
我还尝试添加系统属性来指定 MessageFactory 的实现,但仍然出现相同的错误。也尝试使用较低版本的saaj-impl,但错误仍然存在。
我尝试了Unable to create SAAJ meta-factory after packaging as JAR和Unable to create SAAJ meta-factory: Provider com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl not found中提到的解决方案
注意:如果我使用基于 jar 的依赖项,它工作正常,但在使用相同版本的基于插件的依赖项时不起作用。类加载器似乎正在发生某些事情。
【问题讨论】:
-
找到 github.com/eclipse-ee4j/saaj-api/issues/43 可能会提供一些想法。
标签: soap osgi java-11 saaj soapexception