我遇到了许多问题,因为SOAP类有不同的SAAJ包:
com/sun/xml/internal/messaging/saaj/soap/ in rt.jarcom/sun/xml/messaging/saaj/soap/当WebLogic使用来自com/sun/xml/internal/messaging/saaj/soap/的类并使用来自com/sun/xml/messaging/saaj/soap/的类创建应用程序时,它会在部署应用程序时抛出以下异常:
com.sun.xml.internal.messaging.saaj.soap.LocalStrings != com.sun.xml.messaging.saaj.soap.LocalStrings
或
java.lang.NoClassDefFoundError: com/sun/xml/internal/messaging/saaj/soap/SAAJMetaFactoryImpl
我的解决方案是创建一个带有saaj引用的weblogic.xml描述符,并将Saaj-Im.jar包含到war中。问题是:我可以知道在WebLogic服务器中使用什么SAAJ包吗?
发布于 2012-10-07 07:23:19
如果您使用WebLogic10.3.3(或者我认为任何其他版本),那么由JDK运行时使用的SAAJ实现是安装的,因为web服务器首先将CLASSPATH初始化为JDK jars。因此,您需要用jar文件覆盖它,这样它就可以首先找到您想要的实现。对我来说,使用weblogic的唯一解决方案是在weblogic setDomainEnv.cmd文件中设置这样的setDomainEnv.cmd,
set PRE_CLASSPATH=%DOMAIN_HOME%\lib\endorsed\saaj-impl-1.3.18.jar因此,DOMAIN_HOME代表Weblogic域,但它也可以是指向jar的任何其他绝对路径。关于这个问题的一点也被描述为这里。
https://stackoverflow.com/questions/10341520
复制相似问题