Please... i have hit a major roadblock here and could really use some help. I'd be very grateful.
I am attempting to return a literal xml document as a response part. So I created a service class and method that would return a "org.w3c.dom.Element", and registered this service and method. When I sent my first SOAP request to the server, Apache SOAP correctly located the service method that I had created. However, my server does not seem to know how to serialize an Element (seems like such a trivial thing to get stuck on... sigh). It produces a SOAP fault: ========================================= <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>SOAP-ENV:Server</faultcode> <faultstring>java.lang.IllegalArgumentException: No Serializer found to serialize a 'org.w3c.dom.Element' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.</faultstring> <faultactor>/cw/soapRpcRouter</faultactor> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope> =============================================== It seems perhaps I need to tell it to use http://xml.apache.org/xml-soap/literalxml as the encoding style for the response... which is what I have indicated in my WSDL document for this service... but how do I tell the Apache Soap server that this is my intention? Anyway following the advice of the faq I instead added a Type Mapping to the service, telling it to use org.apache.soap.encoding.literalxml.XMLParameterSerializer To serialize and deserialize org.w3c.dom.Element... But this doesn't work either. This serializer seems to actually expect Parameter objects as opposed to XML Elements... I get the following exception which in turn produces a server side SOAP Fault: =============================================== java.lang.ClassCastException: org.apache.xerces.dom.ElementImpl at org.apache.soap.encoding.literalxml.XMLParameterSerializer.marshall(XMLParam eterSerializer.java:85) at org.apache.soap.encoding.soapenc.ParameterSerializer.marshall(ParameterSeria lizer.java:102) at org.apache.soap.rpc.RPCMessage.marshall(RPCMessage.java:267) at org.apache.soap.Body.marshall(Body.java:145) at org.apache.soap.Envelope.marshall(Envelope.java:195) at org.apache.soap.providers.RPCJavaProvider.invoke(RPCJavaProvider.java:133) at org.apache.soap.server.http.RPCRouterServlet.doPost(RPCRouterServlet.java:28 7) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja va:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 66) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja va:201) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 66) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164 ) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 66) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve. java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 64) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170 ) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 64) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java :163) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 66) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java: 1011) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106 ) at java.lang.Thread.run(Thread.java:484)