首页 > 解决方案 > 有时会抛出 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 被一些关键功能使用,删除它的风险太高。无论如何可以确保我的功能按预期加载正确的类?

标签: soapsaaj

解决方案


推荐阅读