[ http://issues.apache.org/jira/browse/AXIS-1903?page=comments#action_63493 ] vd commented on AXIS-1903: --------------------------
I encounter this problem and it has nothing to do with WEB-INF/lib. I use Axis inside a stateless EJB as a client. This problem came up. I tried to change the way EJB load with PARENT_LAST, but it didn't work until I patch this code with the above suggestion. The point of this bug is not the patch code, but the problem itself. The patch code is a suggestion. It maybe the best suggestion; or it maybe not. With Websphere being used widely, I think it is really critical to fix this bug. > IncompatibleClassChangeError when deploying Axis 1.2-RC3 on WebSphere 5.1 > with PARENT_FIRST classloading > -------------------------------------------------------------------------------------------------------- > > Key: AXIS-1903 > URL: http://issues.apache.org/jira/browse/AXIS-1903 > Project: Axis > Type: Bug > Components: SAAJ > Versions: 1.2RC3 > Environment: WebSphere 5.1.x on Linux (2.4.x kernel). > Reporter: David Tompkins > > I am deploying Axis 1.2RC3 in a war that resides within an ear. The axis jars > are in the war/WEB-INF/lib dir. For various reasons related to the other > contents of my ear, I must use PARENT_FIRST classloading. As many have > reported, if you have PARENT_FIRST classloading on WebSphere 5.1 with Axis > 1.2RC3, then there is a conflict between the version of saaj (1.1) that ships > with WebSphere, and the version of saaj (1.2) that Axis 1.2RC3 expects, and > you get the following exception: > > java.lang.IncompatibleClassChangeError: class org.apache.axis.SOAPPart does > not implement interface org.w3c.dom.Document > > This issue can be resolved with PARENT_LAST classloading and a manifest which > specifies the classpath...but for those of use who can't use PARENT_LAST > classloading, there is another option. > > It appears that a single source code change to Axis will eliminate the issue > altogether. The offending code is in > org.apache.axis.message.MessageElement.addTextNode(), and can be patched as > follows: > > OLD CODE: > > public SOAPElement addTextNode(String s) throws SOAPException { > try { > Text text = getOwnerDocument().createTextNode(s); > ((org.apache.axis.message.Text)text).setParentElement(this); > return this; > } catch (ClassCastException e) { > throw new SOAPException(e); > } > } > > PATCHED CODE: > > public SOAPElement addTextNode(String s) throws SOAPException { > try { > Text text = new org.apache.axis.message.Text(s); > this.appendChild(text); > return this; > } catch (ClassCastException e) { > throw new SOAPException(e); > } > > After making this change, Axis 1.2RC3 will run on WebSphere 5.1 with > PARENT_FIRST classloading, and no exceptions will be thrown. > > -DT > > --------------------------------- > David Tompkins > Sr. Computer Scientist > Adobe Systems, Inc. > tompkins _AT_ adobe _DOT_ com > http://www.dt.org/ -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
