2012-04-25 9 views
0

をロードするの例外は、私は次の例外で私の心の外に駆動されています:私はWABを展開しようとすると、のjava.util.logging、リソースバンドル、SAAJ:GlassfishののOSGi Webアプリケーションバンドル

java.lang.IllegalArgumentException: 
com.sun.xml.messaging.saaj.soap.LocalStrings != com.sun.xml.internal.messaging.saaj.soap.LocalStrings 
    at java.util.logging.Logger.getLogger(Logger.java:357) 
    at com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl.<clinit>(SAAJMetaFactoryImpl.java:41) 

それは発生しています(WebアプリケーションOSGiバンドル)からGlassfish(3.1.1)に変更します。

私は、ファイル内の文字列META-INF/services/javax.xml.soap.MessageFactorycom.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Implを置くことによって、SAAJ(com.sun.xml.messaging.saaj...)の最新バージョンではなく、(com.sun.xml.internal.saaj... 1である)古いJDKのいずれかを使用しようとしています。

中のOSGiクラスローディングキックの前に起こっているいくつかのログがあります表示されますので、「間違った」ResourceBundlecom.sun.xml.messaging.saaj.soap.MessageFactoryImplの静logフィールド(javax.xml.soap.MessageFactoryのSAAJの実装)の初期化中に戻されています。

誰でもこの/任意の回避策を見ていますか?

答えて

0

は、このの底にやったことがなかったが、マニフェストブードゥー教は、最終的には(Import-Packageではなく、バンドルクラスパスWEB-INF/libjavax.xml.ws/javax.ws.rsすべてのパッケージと)離れて行かせました。

明らかに、これはMessageFactoryのすべてのユーザーにその実装を強制しても、Glassfishの起動時に

-Djavax.xml.soap.MessageFactory=com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl 

を使用して、それを回避することも可能でした。

関連する問題