You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Fabrício <fa...@de9.ime.eb.br> on 2005/09/27 00:13:46 UTC
Web service receiving and returning org.w3c.dom.Element
Hello all,
Does anyone have a real example of a web service that receives and returns
an org.w3c.dom.Element? I created one, but doesnt work! :-((((((((((((
Always I get this error:
org.xml.sax.SAXException: SimpleDeserializer encountered a child element,
which is NOT expected, in something it was trying to deserialize.
My web service is just this:
import org.w3c.dom.Element;
public class ElementWS {
public Element method(Element e){
return e;
}
}
And my wsdd is:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="ElementWS" provider="java:RPC">
<parameter name="className" value="ElementWS"/>
<parameter name="allowedMethods" value="*"/>
<typeMapping
qname="myNS:Element"
xmlns:myNS="urn:ElementWS"
languageSpecificType="java:org.w3c.dom.Element"
deserializer="org.apache.axis.encoding.ser.ElementDeserializerFactory"
serializer="org.apache.axis.encoding.ser.ElementSerializerFactory"/>
</service>
</deployment>
In my client I used registerTypeMapping too. This is a piece of my client:
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document documentXML = builder.parse("People.xml");
Element e = documentXML.getDocumentElement();
Object[] params = {e};
Service service = new Service();
QName qnElement = new QName("urn:ElementWS", "Element");
Call call = (Call) service.createCall();
call.registerTypeMapping(Element.class, qnElement ,
new
org.apache.axis.encoding.ser.ElementSerializerFactory(),
new
org.apache.axis.encoding.ser.ElementDeserializerFactory());
call.setTargetEndpointAddress( new java.net.URL(urlWS) );
call.setOperationName( new QName(urlWS, "method") );
Element ele = (Element) call.invoke(params);
System.out.println(ele);
Does anyone can see why Im getting this error?
Thanks very, very, very, very much!!
Fabrício.