You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Davanum Srinivas (JIRA)" <ax...@ws.apache.org> on 2005/07/27 05:45:18 UTC
[jira] Resolved: (AXIS-2121) CLONE -IncompatibleClassChangeError when deploying Axis 1.2-RC3 on WebSphere 5.1 with PARENT_FIRST classloading
[ http://issues.apache.org/jira/browse/AXIS-2121?page=all ]
Davanum Srinivas resolved AXIS-2121:
------------------------------------
Resolution: Fixed
Checked in a fix to ws-axis/java/src/org/apache/axis/message/SOAPFaultBuilder.java. Please check latest CVS.
thanks,
dims
> CLONE -IncompatibleClassChangeError when deploying Axis 1.2-RC3 on WebSphere 5.1 with PARENT_FIRST classloading
> ---------------------------------------------------------------------------------------------------------------
>
> Key: AXIS-2121
> URL: http://issues.apache.org/jira/browse/AXIS-2121
> Project: Apache Axis
> Type: Bug
> Components: SAAJ
> Versions: 1.2RC3
> Environment: WebSphere 5.1.x on Linux (2.4.x kernel).
> Reporter: Thilo Frotscher
> Priority: Blocker
>
> 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