could not find deserializer for type anyType

View: New views
2 Messages — Rating Filter:   Alert me  

could not find deserializer for type anyType

by soma nayak :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I have a webservice hosted in Tomat-axis server. I want to make a service method call which returns a complex object VehicleSearchResponse as follows:

public class VehicleSearchResponse
private com.vzb.service.vehicle.DBStatus dbstatus;
    private com.vzb.service.domain.Vehicle vehicle;



I'm using the following mule-config.xml:

  <mule-descriptor name="findVehicleProxyNew"
                         implementation="org.mule.components.simple.BridgeComponent" >
             <inbound-router>
           
                    <endpoint address="vm://findVehicleNew" synchronous="true"/>
             
               </inbound-router>
               
            <outbound-router>
                <router className="org.mule.routing.outbound.OutboundPassThroughRouter">
                    <endpoint address="axis:http://etnj.zdevapp5:8080/axis2/services/VehicleService?method=findVehicle" >
                     <properties>
                         <property name="style" value="document"/>
                <property name="use" value="literal"/>
                <property name="soapAction" value="${methodNamespace}${method}" />
               
                   <map name="soapMethods">
                                <list name="qname{findVehicle:http://vehicle.service.vzb.com}">
                                    <entry value="parameters;any;in"/>
                                    <entry value="parameters;any;out"/>
                                </list>
                            </map>
                        </properties>  
                    </endpoint>
                </router>
            </outbound-router>
           
        </mule-descriptor>

The client call is as follows:
MuleClient muleClient  = new MuleClient("mule-config-client.xml");
VehicleSearchRequest input = new VehicleSearchRequest();
input.setVin("137ZA8331VE177209");
input.setTrialNumber("1");
Object[] in = new Object[]{input};
UMOMessage result = muleClient.send("vm://findVehicleNew", in, null);

The service is invoked and sending the respose, but I'm unable to get the response object back due to following exception:
ERROR 2009-01-16 15:53:55,473 [main] org.apache.axis.client.Call: Exception:
org.xml.sax.SAXException: Deserializing parameter 'return':  could not find deserializer for type anyType {http://www.w3.org/2001/XMLSchema}anyType
        at org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:277)
        at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)


Do I need to register the VehicleSearchResponse on client side, how? how do I get the response object back to client?

Any help is appreciated..
               
     

Re: could not find deserializer for type anyType

by mmule :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

What there a solution for this? If yes, then please share.

Thanks,
M

soma nayak wrote:
I have a webservice hosted in Tomat-axis server. I want to make a service method call which returns a complex object VehicleSearchResponse as follows:

public class VehicleSearchResponse
private com.vzb.service.vehicle.DBStatus dbstatus;
    private com.vzb.service.domain.Vehicle vehicle;



I'm using the following mule-config.xml:

  <mule-descriptor name="findVehicleProxyNew"
                         implementation="org.mule.components.simple.BridgeComponent" >
             <inbound-router>
           
                    <endpoint address="vm://findVehicleNew" synchronous="true"/>
             
               </inbound-router>
               
            <outbound-router>
                <router className="org.mule.routing.outbound.OutboundPassThroughRouter">
                    <endpoint address="axis:http://etnj.zdevapp5:8080/axis2/services/VehicleService?method=findVehicle" >
                     <properties>
                         <property name="style" value="document"/>
                <property name="use" value="literal"/>
                <property name="soapAction" value="${methodNamespace}${method}" />
               
                   <map name="soapMethods">
                                <list name="qname{findVehicle:http://vehicle.service.vzb.com}">
                                    <entry value="parameters;any;in"/>
                                    <entry value="parameters;any;out"/>
                                </list>
                            </map>
                        </properties>  
                    </endpoint>
                </router>
            </outbound-router>
           
        </mule-descriptor>

The client call is as follows:
MuleClient muleClient  = new MuleClient("mule-config-client.xml");
VehicleSearchRequest input = new VehicleSearchRequest();
input.setVin("137ZA8331VE177209");
input.setTrialNumber("1");
Object[] in = new Object[]{input};
UMOMessage result = muleClient.send("vm://findVehicleNew", in, null);

The service is invoked and sending the respose, but I'm unable to get the response object back due to following exception:
ERROR 2009-01-16 15:53:55,473 [main] org.apache.axis.client.Call: Exception:
org.xml.sax.SAXException: Deserializing parameter 'return':  could not find deserializer for type anyType {http://www.w3.org/2001/XMLSchema}anyType
        at org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:277)
        at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)


Do I need to register the VehicleSearchResponse on client side, how? how do I get the response object back to client?

Any help is appreciated..