这是我第一次编写web服务客户端,有趣的是,我已经编写了web服务;)
无论如何,我正在使用axis通过以下代码调用WS
String endpoint =
"http://localhost:8080/SpeechServices/SpeechWebService/SpeechWebService";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName("http://ws.ecw.com/", "parseNotes"));
HashMap ret = (HashMap) call.invoke(new Object[]{"", "", ""});
System.out.println("Sent 'Hello!', got '" + ret + "'");我的服务返回一个HashMap,并有三个输入参数apuId,providerId,注意我不确定如何将这些参数发送到WS,我确信它只需要几个方法调用就可以了,例如: call.setProperty。请指教
发布于 2011-07-27 15:50:14
好了,这就是答案,它还不能完全工作,因为Axis似乎不支持将hashmap作为yet服务响应。
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 + "'");https://stackoverflow.com/questions/6827147
复制相似问题