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)

Reply via email to