请教:WebService中,怎样取得函数输出参数的返回值?
Ah 2003-09-16 08:02:02 我用VC写了一个COM
其中有一个方法类似于GetX(BSTR b1,BSTR* result),其中返回值由输出参数result返回。
我用java写的这个web service的客户端,远程调用已经成功了,但是我取不到返回的值,这个值应该是一个比较大的字符串
我的java客户端代码如下:
String result = null;
try {
QName qname = new QName(
"http://wynner/xxx/message/",
"GetX");
Service service = new Service();
Call call = (Call)service.createCall();
call.setTimeout(new Integer(120000));
call.setTargetEndpointAddress(
"http://wynner/xxx/DS.WSDL");
call.setUseSOAPAction(true);
call.setSOAPActionURI(
"http://wynner/xxx/DS/action/COMX.GetX");
call.setReturnType(
new QName("http://schemas.xmlsoap.org/soap/encoding/",
"string"),new Object().getClass());
call.addParameter("b1",qname,javax.xml.rpc.ParameterMode.IN);
call.addParameter("result",qname,javax.xml.rpc.ParameterMode.INOUT);
call.setOperationName(qname);
Object oParam[] = new Object[3];
oParam[0] = "xxx";
oParam[2] = "";
result = (String)call.invoke(oParam);
if(result.length() == 0) return null;
}
catch(Exception e) {
System.out.println(e.toString());
return null;
}