我被以下例外驱逐出境:
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)
当我尝试将WAB(Web应用程序OSGi包)部署到Glassfish(3.1.1)时,就会发生这种情况。
我尝试使用最新版本的SAAJ(com.sun.xml.messaging.saaj...
)而不是旧版本的JDK(com.sun.xml.internal.saaj...
版本),通过放置字符串{文件com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl
中的{1}}。
在OSGi类加载开始之前,似乎有一些日志记录正在进行,因此错误的&#39;在META-INF/services/javax.xml.soap.MessageFactory
的静态ResourceBundle
字段初始化期间返回log
(SAAJ&#39}的com.sun.xml.messaging.saaj.soap.MessageFactoryImpl
实现)。
有人看过这个/提供的任何变通方法吗?
答案 0 :(得分:0)
从来没有深究这一点,但是清单伏都教最终使它消失了(javax.xml.ws
中的所有javax.ws.rs
/ Import-Package
包而不是捆绑类路径{{ 1}})。
也可以使用
来解决它WEB-INF/lib
在Glassfish创业公司,但显然这会强制实施-Djavax.xml.soap.MessageFactory=com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl
的所有用户。
答案 1 :(得分:0)
请参阅:JDK-6741342 : Logger.getLogger() throws java.lang.IllegalArgumentException on saaj classes。
相反,它与将saaj引入JDK 6相关.....并且解决方法涉及重新订购罐子。