I had a problem dealing with fault responses and I got it fixed.
The problem was in SOAPFaultBuilder.java
the message node was added to a new DOM Document but it was NOT imported
first!
Importing the node first into the new DOM Document solved the problem.
The diff -u output is:
---
ws-axis-java-original/src/org/apache/axis/message/SOAPFaultBuilder.java
2005-07-27 06:44:02.000000000 +0300
+++
ws-axis-java-patched/src/org/apache/axis/message/SOAPFaultBuilder.java
2006-01-31 17:56:27.640439500 +0200
@@ -24,6 +24,7 @@
import org.apache.axis.soap.SOAPConstants;
import org.apache.axis.utils.Messages;
import org.apache.axis.utils.XMLUtils;
+import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.xml.sax.Attributes;
@@ -301,8 +302,9 @@
if (node instanceof MessageElement) {
elements[i] = ((MessageElement)
node).getAsDOM();
} else if(node instanceof Text){
- elements[i] =
XMLUtils.newDocument().createElement("text");
- elements[i].appendChild(node);
+ Document tempDoc = XMLUtils.newDocument();
+ elements[i] = tempDoc.createElement("text");
+
elements[i].appendChild(tempDoc.importNode(node,true));
}
} catch (Exception e) {
throw new SAXException(e);