在webservice8.1中部署axis webservice,经常会出现类似以下的错误
<2005-3-2 下午07时27分05秒 CST> <Error> <HTTP> <BEA-101017> <[ServletContext(id=
3449288,name=testwebservice,context-path=/testwebservice)] Root cause of Servlet
Exception.
java.lang.IncompatibleClassChangeError
at org.apache.axis.message.MessageElement.addTextNode(MessageElement.jav
a:1027)
at org.apache.axis.message.SOAPHandler.endElement(SOAPHandler.java:121)
at org.apache.axis.encoding.DeserializationContextImpl.endElement(Deseri
alizationContextImpl.java:1060)
at weblogic.apache.xerces.parsers.AbstractSAXParser.endElement(AbstractS
AXParser.java:585)
at weblogic.apache.xerces.impl.XMLNamespaceBinder.handleEndElement(XMLNa
mespaceBinder.java:898)
……
这是由于webservice8.1中所带的webservices.jar和axis中的saaj.jar冲突引起的,解决方法有两个:
1. 配置weblogic.xml,强制weblogic首先加载应用WEB-INF中的class
2. 修改startweblogic.cmd,将axis下的saaj.jar的路径放在weblogic的webservices.jar之前。