=== Service Defination ===========

<service name="TestMapService" provider="java:RPC">
    <parameter name="allowedMethods" value="*" />
    <parameter name="className" value="my.TestMapService" />
</service>

=== Service method ====

public Map testMap(Map context) {
    System.out.print("Map context : " + context, "");
    Map results = new HashMap();
    results.put("responseMessage", "Hello Map");
    return results;
}

=== Client ===

Map context = new HashMap();
Object result = call.invoke(new Object[] {context});

==============
When the client call service, The service  can print Map object to console.
But client can not get Map object returned from service.
There is a error like this:

     [java] org.xml.sax.SAXException: No deserializer for {
http://schemas.xmlsoap.org/soap/encoding/}string
     [java]     at
org.apache.axis.encoding.DeserializerImpl.onStartElement(DeserializerImpl.java:453)
     [java]     at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:393)
     [java]     at
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
     [java]     at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
     [java]     at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
     [java]     at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:369)
     [java]     at
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
     [java]     at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
     [java]     at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
     [java]     at
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
     [java]     at
org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:2467)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:2366)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:1812)

Can any one help me?

Thank you

Reply via email to