在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之前。
詳細內容見:http://ws.apache.org/axis/java/install.html#depend