WS4104E:SAAJ 1.2不支持SOAP 1.2协议

WS4104E:SAAJ 1.2不支持SOAP 1.2协议,soap,jax-ws,websphere-8,saaj,Soap,Jax Ws,Websphere 8,Saaj,我在一个独立的应用程序中有一个JAXWS客户机,它抛出: Caused by: java.lang.UnsupportedOperationException: WSWS4104E: SOAP 1.2 Protocol is not supported by SAAJ 1.2. at com.ibm.ws.webservices.engine.xmlsoap.SOAPFactory.setSOAPConstants(SOAPFactory.java:143) at com.ibm

我在一个独立的应用程序中有一个JAXWS客户机,它抛出:

Caused by: java.lang.UnsupportedOperationException: WSWS4104E: SOAP 1.2 Protocol is not supported by SAAJ 1.2.
    at com.ibm.ws.webservices.engine.xmlsoap.SOAPFactory.setSOAPConstants(SOAPFactory.java:143)
    at com.ibm.ws.webservices.engine.xmlsoap.SOAPFactory.<init>(SOAPFactory.java:111)
    at com.ibm.ws.webservices.engine.soap.SAAJMetaFactoryImpl.newSOAPFactory(SAAJMetaFactoryImpl.java:68)
    at javax.xml.soap.SOAPFactory.newInstance(SOAPFactory.java:297)
    at com.sun.xml.internal.ws.api.SOAPVersion.<init>(SOAPVersion.java:176)
    at com.sun.xml.internal.ws.api.SOAPVersion.<clinit>(SOAPVersion.java:94)
原因:java.lang.UnsupportedOperationException:WSWS4104E:SAAJ 1.2不支持SOAP 1.2协议。
位于com.ibm.ws.webservices.engine.xmlsoap.SOAPFactory.setSOAPConstants(SOAPFactory.java:143)
位于com.ibm.ws.webservices.engine.xmlsoap.SOAPFactory.(SOAPFactory.java:111)
在com.ibm.ws.webservices.engine.soap.saajmetafactorympl.newSOAPFactory(saajmetafactorympl.java:68)
位于javax.xml.soap.SOAPFactory.newInstance(SOAPFactory.java:297)
位于com.sun.xml.internal.ws.api.SOAPVersion.(SOAPVersion.java:176)
位于com.sun.xml.internal.ws.api.SOAPVersion.(SOAPVersion.java:94)
我添加了以下jarcom.ibm.jaxws.thinclient_8.0.0.jar,但仍然抛出相同的错误

还尝试添加这些依赖项:

    <dependency>
        <groupId>com.sun.xml.messaging.saaj</groupId>
        <artifactId>saaj-impl</artifactId>
        <version>1.3.25</version>
    </dependency>
    <dependency>
        <groupId>javax.xml.soap</groupId>
        <artifactId>saaj-api</artifactId>
        <version>1.3.5</version>
    </dependency>

com.sun.xml.messaging.saaj
saaj impl
1.3.25
javax.xml.soap
saaj api
1.3.5
甚至在Oracle的JDK1.8和IBMJDK1.7下运行


这让我快发疯了,知道它为什么不起作用吗?

经过反复练习,我终于明白了发生了什么:

当使用SOAP1.2时,瘦客户端尝试确定SAAJ 1.3是否可用

com.ibm.ws.webservices.engine.xmlsoap.Utils

    private static final boolean isSAAJ13Available = discoverSAAJ13Availability();
discoverSAAJ13Availability()
最终尝试加载
com.ibm.ws.webservices.engine.xmlsoap.saaj13only.SOAPDynamicConstants
,但它不在类路径上,并最终引发异常

要解决这个问题,还必须添加包含该类的jar:
com.ibm.jaxws.thinclient_8.0.0.jar