soap - 有时会抛出 SAAJMetaFactoryImpl not found
问题描述
我正在使用 OpenJDK 11,这是我获取 SOAP 消息的代码。
SOAPMessage message = MessageFactory.newInstance(dataDTO.getSoapVersion()).createMessage(null, new ByteArrayInputStream(encryptedResponse.getBytes()));
有时它会抛出错误:
javax.xml.soap.SOAPException: Unable to create SAAJ meta-factoryProvider com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl not found at javax.xml.soap.SAAJMetaFactory.getInstance(SAAJMetaFactory.java:94) ~ [saaj-api-1.3.5.jar:?]
我认为是因为它在 saaj-api 1.3.5 而不是 saaj-impl 1.5.1 下寻找方法
以下是我的 POM 依赖项:
<dependency>
<groupId>javax.xml.soap</groupId>
<artifactId>javax.xml.soap-api</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.messaging.saaj</groupId>
<artifactId>saaj-impl</artifactId>
<version>1.5.1</version>
</dependency>
<dependency>
<groupId>javax.xml.soap</groupId>
<artifactId>saaj-api</artifactId>
<version>1.3.5</version>
</dependency>
由于 javax.xml.soap-api 1.4.0 被一些关键功能使用,删除它的风险太高。无论如何可以确保我的功能按预期加载正确的类?
解决方案
推荐阅读
- javascript - 逻辑运算困境
- ios - 带有 Xamarin 的 VS 2019,由于警告而无法调试:调试符号文件无效并被忽略
- node.js - 如何清除 JS 堆
- functional-programming - 在 Purescript 中使用提升机Cofree 逃逸的 Skolem
- angular - 如何使用我来自的表元素中的数据?
- vite - 带有 Windicss 的 Vite 库
- javascript - 脚本不会链接到 index.js
- python - 我想要一个输出,如果用户输入 [1],他将能够在现有列表中插入一个新单词。如果 [2] 程序将关闭
- docker - 在 Docker Desktop(Mac 和 Windows)中显示中间图像
- python - Beautifulsoup -
在 div 文本中添加标签?