0

我正在使用 WebLgic 有以下 saaj soap 消息工厂。我试过离开 messageFactory 而只是 soapVersion 和反之亦然。我还尝试了注释掉的不同 messageFactory Impl bean。我仍然收到标题中的错误。为什么不尝试使用 1.1 版?

<bean id="saajMessageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory">
    <property name="messageFactory">
        <bean class="com.sun.xml.messaging.saaj.soap.MessageFactoryImpl" 
            /> 
        <!-- <bean class="com.sun.xml.messaging.saaj.soap.ver1_2.SOAPMessageFactory1_2Impl" 
            /> -->
        <!-- <bean class="weblogic.xml.saaj.MessageFactoryImpl"/> -->
    </property>
    <property name="soapVersion">
        <util:constant static-field="org.springframework.ws.soap.SoapVersion.SOAP_12" />
    </property>
</bean>

错误:

SAAJ MessageFactory: Unable to create message factory for SOAP: com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl cannot be cast to javax.xml.soap.MessageFactory; nested exception is javax.xml.soap.SOAPException: Unable to create message factory for SOAP: com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl cannot be cast to javax.xml.soap.MessageFactory
            at org.springframework.ws.support.DefaultStrategiesHelper.instantiateBean(DefaultStrategiesHelper.java:188)
            at org.springframework.ws.support.DefaultStrategiesHelper.getDefaultStrategies(DefaultStrategiesHelper.java:134)
            at org.springframework.ws.support.DefaultStrategiesHelper.getDefaultStrategy(DefaultStrategiesHelper.java:219)
            at org.springframework.ws.support.DefaultStrategiesHelper.getDefaultStrategy(DefaultStrategiesHelper.java:203)
            at org.springframework.ws.client.core.WebServiceTemplate.initMessageFactory(WebServiceTemplate.java:310)

pom文件:

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

Weblogic.xml:

<prefer-application-packages>
    <package-name>javax.xml.soap.*</package-name>
    <package-name>javax.xml.ws.*</package-name>
    <package-name>com.sun.xml.messsaging.saaj.*</package-name>
</prefer-application-packages> 

我还应该补充一点,我尝试使用各种选项设置各种此 JVM 参数:-Djavax.xml.soap.MessageFactory=weblogic.xml.saaj.MessageFactoryImpl 例如 com.sun.xml.messaging.saaj.soap.ver1_2.SOAPMessageFactory1_2Impl。错误消息现在反映了新的 Impl 类,但我仍然无法绕过该错误。

4

1 回答 1

0

我不确定究竟是什么最终解决了这个问题,但是当我尝试不同的事情时,我也遇到了一些其他错误,我终于让一切都按照这篇文章中的说明工作:java.lang.NoClassDefFoundError: org/apache/cxf /jaxrs/impl/UriBuilderImpl。我最终删除了上面的那些 pom 文件条目。

我必须做的一件事是下载一个新版本的 Maven,因为我的 VM 中的那个给我带来了问题。

于 2014-09-15T03:30:15.157 回答