This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
The moose likes Web Services and the fly likes AXIS and DOM exception Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Web Services
Bookmark "AXIS and DOM exception" Watch "AXIS and DOM exception" New topic
Author

AXIS and DOM exception

Stephen Campbell
Greenhorn

Joined: Dec 12, 2005
Posts: 2
I have implemented a web service (consumer) with AXIS 1.3, running on WAS 5.1.

If everything goes right, the WS works, If I get an error condition though, SAX throws a exception

What I send is this (names in capitals are dummy)

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<ns1:Security xmlns="http://schemas.xmlsoap.org/ws/2002/04/secext" soapenv:actor="" soapenv:mustUnderstand="0" xmlns:ns1="http://schemas.xmlsoap.org/ws/2002/04/secext">
<ns1:BinarySecurityToken>A VALID BST (Checked via another method)</ns1:BinarySecurityToken>
</ns1:Security>
</soapenv:Header>
<soapenv:Body>
<WS_SRVC xmlns="http://www.MY DUMMY DOMAIN/XML/Schema">
<context>
<ID>DUMMY ID</ID>
</context>
<QUERY_ID>
<MY_TYPE>
<ID>DUMMY ID</ID>
<ANOTHER_ID>DUMMY ID</ANOTHER_ID>
<service_called>Y</service_called>
</MY_TYPE>
</QUERY_ID>
</WS_SRVC>
</soapenv:Body>
</soapenv:Envelope>


the (non-working) response I get is below. The whole enchilada comes apart in the AXIS DeserializationContext.Parse method; the call to parser.parse throws a SAX exception


faultString: org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR: A node is used in a different document than the one that created it.

The actual SOAP message returned is this

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soapenv:Header/>
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Sender</faultcode>
<faultstring>Could not locate environment for object id.</faultstring>
<detail>A service was requested for a supplied DUMMY ID. This customer does not exist.</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>


The problematic code is

/**
* Create a parser and parse the inputSource
*/
public void parse() throws SAXException
{
if (inputSource != null) {
SAXParser parser = XMLUtils.getSAXParser();
try {
parser.setProperty("http://xml.org/sax/properties/lexical-handler", this);
parser.parse(inputSource, this); //BLAMMO!

~~snip


Has anybody come across this error and its resolution?
Stephen Campbell
Greenhorn

Joined: Dec 12, 2005
Posts: 2
I should add, the stack trace is

faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR: A node is used in a different document than the one that created it.
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace rg.w3c.dom.DOMException: WRONG_DOCUMENT_ERR: A node is used in a different document than the one that created it.
at java.lang.Throwable.<init>(Throwable.java)
at java.lang.Throwable.<init>(Throwable.java)
at org.w3c.dom.DOMException.<init>(Unknown Source)
at org.apache.xerces.dom.ParentNode.internalInsertBefore(Unknown Source)
at org.apache.xerces.dom.ParentNode.insertBefore(Unknown Source)
at org.apache.xerces.dom.NodeImpl.appendChild(Unknown Source)
at org.apache.axis.message.SOAPFaultBuilder.onEndChild(SOAPFaultBuilder.java:305)
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1090)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: AXIS and DOM exception
 
Similar Threads
SAXException in response
Wierd SOAP error while Authenticating in web services
Server.userException: Exception while executing Client
Error : Axis Engine Cudn't find the target
WAS v6.1 + WS-Security