axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andre Charbonneau <andre.charbonn...@nrc-cnrc.gc.ca>
Subject Re: help! No serializer found for class org.apache.axis.message.SOAPB odyElement
Date Thu, 06 Nov 2003 18:46:35 GMT
Hi,
I think the problem is that you are trying to pass a data type for which 
there is no serializer implemented for by default in Axis.

The list of default data types supported is:

xsd:base64Binary	byte[]
xsd:boolean	boolean
xsd:byte	byte
xsd:dateTime	java.util.Calendar
xsd:decimal	java.math.BigDecimal
xsd:double	double
xsd:float	float
xsd:hexBinary	byte[]
xsd:int	int
xsd:integer	java.math.BigInteger
xsd:long	long
xsd:QName	javax.xml.namespace.QName
xsd:short	short
xsd:string	java.lang.String


One way to go around the problem would be to transform your Document 
into a String and then pass that string as argument to your web service 
method.  The other, cleaner, way would be to implement a custom 
serializer to handle the Document objects.

Cheers.
Andre.


ial wrote:
> Hi,
> Brand new to axis and we created a message service that takes in a Document
> and returns a Document. Our client code is below which we modeled off of the
> Hello World message sample shipped with Axis. We are now getting this
> exception with the client code below and do not know what to do.
> 
> OUR SERVICE WSDL
> ----------------------------------
> <deployment name="test" xmlns="http://xml.apache.org/axis/wsdd/"
>             xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
>             xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance">
>   <!-- note that either style="message" OR provider="java:MSG" both work -->
>   <service name="ReplicationServer" style="message">
>     <parameter name="className"
> value="org.openmrm.core.replication.WebServicesTransporter" />
>     <parameter name="allowedMethods" value="processInboundData
> generateOutboundData processOutboundResults" />
>   </service>
> </deployment>
> 
> 
> OUR SERVICE METHOD SIGNATURE
> -------------------------------------------------------
> public Document processInboundData(Document xmlData) throws Exception {
> 
> 
> CALLING CLIENT CODE
> ------------------------------------
> 
> String[] args = new String[1];
> Options opts = new Options(args);
> opts.setDefaultURL(webservice_url);
> Service service = new Service();
> Call call = (Call)service.createCall();
> call.setOperationName("processInboundData"); // our remote service method
> call.setOperationStyle("document");
> call.setOperationUse("literal");
> 
> call.setTargetEndpointAddress( new URL(opts.getURL()) );
> SOAPBodyElement[] input = new SOAPBodyElement[1];
> input[0] = new SOAPBodyElement((Element)data.getRootElement());
> Vector elems = (Vector) call.invoke("processInboundData",input);
> 
> 
> EXCEPTION ON CLIENT
> --------------------------------------
> 
> java.io.IOException: No serializer found for class
> org.apache.axis.message.SOAPBodyElement in registry
> org.apache.axis.encoding.TypeMappingImpl@be51cd
>  at org.apache.axis.AxisFault.makeFault(AxisFault.java:129)
>  at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:272)
>  at org.apache.axis.SOAPPart.getAsString(SOAPPart.java:483)
>  at org.apache.axis.SOAPPart.getAsBytes(SOAPPart.java:375)
>  at org.apache.axis.Message.getContentType(Message.java:399)
>  at
> org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:341)
>  at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:122)
>  at
> org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:
> 71)
>  at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
>  at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
>  at org.apache.axis.client.AxisClient.invoke(AxisClient.java:180)
>  at org.apache.axis.client.Call.invokeEngine(Call.java:2564)
>  at org.apache.axis.client.Call.invoke(Call.java:2553)
>  at org.apache.axis.client.Call.invoke(Call.java:2248)
>  at org.apache.axis.client.Call.invoke(Call.java:2171)
>  at org.apache.axis.client.Call.invoke(Call.java:2196)
>  at
> org.openmrm.core.replication.WebServicesTransporter.sendOutboundData(WebServ
> icesTransporter.java:92)
> 

-- 
Andre Charbonneau

100 Sussex Drive, Rm 2025
Research Computing Support, IMSB
National Research Council Canada
Ottawa, ON, Canada K1A 0R6
613-993-3129  Fax: 613-993-3127


Mime
View raw message