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> 

-Djavax.xml.soap.MessageFactory=weblogic.xml.saaj.MessageFactoryImpl また、com.sun.xml.messaging.saaj.soap.ver1_2.SOAPMessageFactory1_2Impl などのさまざまなオプションを使用して、この JVM 引数をさまざまに設定しようとしたことも付け加えておきます。エラー メッセージに新しい Impl クラスが反映されるようになりましたが、まだエラーを回避できません。

4

1 に答える 1

0

何がこの問題を解決したのか正確にはわかりませんが、さまざまなことを試したときに他のエラーも発生し、最終的にこの投稿で指定されているようにすべてが機能するようになりました: /jaxrs/impl/UriBuilderImpl . 上記のpomファイルのエントリを削除することになりました。

私がしなければならなかったことの1つは、VMに付属していたMavenが問題を引き起こしていたため、新しいバージョンのMavenをダウンロードすることでした。

于 2014-09-15T03:30:15.157 に答える