Axis Web服务客户端响应HashMap

时间:2011-07-27 08:02:18

标签: java web-services axis

我正在尝试使用返回Java哈希映射的Web服务,以下是

的代码
        String endpoint =
                "http://localhost:8080/eCWServices/StructSpeech/StructSpeech";

        Service service = new Service();
        Call call = (Call) service.createCall();
        call.setTargetEndpointAddress(new java.net.URL(endpoint));
        call.setOperationName(new QName("http://ejb.ecw.com/", "parseNotes"));
        call.addParameter("notes", org.apache.axis.Constants.XSD_STRING, ParameterMode.IN);
        call.addParameter("apuId", org.apache.axis.Constants.XSD_STRING, ParameterMode.IN);
        call.addParameter("providerId", org.apache.axis.Constants.XSD_STRING, ParameterMode.IN);
        call.setReturnType(XMLType.SOAP_MAP);
        HashMap  ret = (HashMap) call.invoke(new Object[]{"","",""});
        System.out.println("Sent 'Hello!', got '" + ret + "'");

返回的HashMap始终为空,我认为该轴不支持它。谁能给我指点,我可以在jdk 1.4中找到如何使用服务来返回一个hashmap?

1 个答案:

答案 0 :(得分:0)

好的,通过将一个byte []序列化为ByteArrayOutputStream来解决它,我检索字节数组并将其转换回客户端的hashMap。