3

Web サービス クライアント アプリケーションを weblogic にデプロイすると、次のエラーが発生します。[このアプリケーションは tomcat で問題なく動作しています。]

コンストラクタ引数の設定中に Bean 'saajSoapMessageFactory' への参照を解決できません。ネストされた例外は org.springframework.beans.factory.BeanCreationException: クラスパスリソースで定義された名前 'saajSoapMessageFactory' を持つ Bean の作成中にエラーが発生しました [.../core/ws/ws-config.xml]: init メソッドの呼び出しに失敗しました。ネストされた例外は org.springframework.ws.soap.SoapMessageCreationException: Could not create SAAJ MessageFactory: Unable to create message factory for SOAP: weblogic.webservice.core.soap.MessageFactoryImpl は javax.xml.soap.MessageFactory にキャストできません。ネストされた例外は javax.xml.soap.SOAPException: Unable to create message factory for SOAP: weblogic.webservice.core.soap.MessageFactoryImpl を javax.xml.soap.MessageFactory にキャストできません

ws-config.xml の Bean 定義は次のとおりです。

(bean id="saajSoapMessageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory")

この問題を検索してみましたが、残念ながら解決策は見つかりませんでした。春の設定に何か欠けていますか?以前にこの問題に直面した人はいますか?

4

1 に答える 1

3

私はこれに出くわしていませんが、何が起こっているのかというと、WeblogicはMessageFactoryImplに独自のデフォルトを使用しています

weblogicの起動ログを確認すると、次のようないくつかのパラメータが設定されていることがわかります。

javax.xml.rpc.ServiceFactory = weblogic.webservice.core.rpc.ServiceFactoryImpl
javax.xml.soap.MessageFactory = weblogic.webservice.core.soap.MessageFactoryImpl

あなたは2つのオプションを試すことができます(どちらがうまくいくかわかりません、試してみてください)

A)

クライアントで、これらを自分でSpringに相当するものに設定します

System.setProperty("javax.xml.soap.MessageFactory",      "org.springframework.ws.soap.saaj.SaajSoapMessageFactory");
System.setProperty( "javax.xml.rpc.ServiceFactory",      "** Spring version **");

B)-DstartWeblogic.cmdのパラメーターとして必要なバージョンを渡します

-Djavax.xml.soap.MessageFactory=org.springframework.ws.soap.saaj.SaajSoapMessageFactory

そして、saajjarをweblogicクラスパスに追加します。

于 2011-11-21T12:18:52.900 に答える