maven仓库里没有"saaj-ri",你是不是搞错了
时间: 2023-07-21 16:31:31 浏览: 46
很抱歉,我的回答有误。实际上, `saaj-ri` 是旧的 SAAJ 实现,不再被最新的 Jakarta SOAP API 所支持。正确的解决方案是使用 Jakarta SOAP API 的新实现,例如 Apache CXF 或 Metro。
您可以在 Maven 中添加以下依赖项来使用 Apache CXF 实现:
```xml
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.4.4</version>
</dependency>
```
如果您使用的是 Gradle,则可以将以下内容添加到您的 build.gradle 文件中:
```groovy
implementation 'org.apache.cxf:cxf-rt-frontend-jaxws:3.4.4'
```
然后,您可以使用以下代码来获取 SOAP 消息工厂:
```java
private static MessageFactory getSOAPMsgFactory() throws SOAPException {
if (_msgFact == null) {
_msgFact = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
}
return _msgFact;
}
```
请注意,此代码使用的是 SOAP 1.2 协议。如果您需要使用 SOAP 1.1 协议,请将 `SOAPConstants.SOAP_1_2_PROTOCOL` 替换为 `SOAPConstants.SOAP_1_1_PROTOCOL`。