> 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. >
Sorry if this was In a previous message, but could you describe/refer me to the manifest change you mentioned. Thanks, Raul -----Original Message----- From: Davanum Srinivas [mailto:[EMAIL PROTECTED] Sent: Thursday, March 24, 2005 7:21 PM To: [email protected] Cc: [email protected] Subject: Re: A solution to deploy Axis 1.2 on WebSphere 5.1 with PARENT_FIRST classloading... Can you please log a bug report? thanks, dims On Thu, 24 Mar 2005 10:17:32 -0800, David Tompkins <[EMAIL PROTECTED]> wrote: > > Greetings, > > I know that deploying Axis 1.2 on WebSphere 5.1 has been a frequent > topic on this list, so I thought I would add my findings to the noise. > > 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. > > After some digging in the Axis code, 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); > 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 -- Davanum Srinivas - http://webservices.apache.org/~dims/
