JAVA调用.net webservice提示参数为空
guogy 2011-07-23 09:38:54 最近在调试JAVA调用.net webservice接口时,老是碰到一个问题,提示参数为空,解析不了。
<errorDesc>值不能为空。参数名: s</errorDesc>
上面是接口返回的错误,实际上.net webservice内部测试是没问题的。
而JAVA如果调用.NET 没带参数的接口,也能正常调用。
纠结死了,看了网上说要给参数加上命名空间啥的,我已经加上了,还是提示参数空。
求各位高手帮忙指导一下啊,万分感激。
下面贴上我的代码,
public String retrieveDocument(String userName,String userPassword,String xmlParam) throws Exception{
String result = "dd";
Service service = new Service();
Call call = (Call) service.createCall();
// 设置请求的URL
call.setTargetEndpointAddress(new URL(
"http://localhost/henandhip/services/DocumentRegistry_Service.asmx"));
//设置请求的方法
call.setOperationName(new QName(NAMESPACE, "retrieveDocument"));
//设置方法的参数
call.addParameter(new QName(NAMESPACE,"userName"), XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
call.addParameter(new QName(NAMESPACE,"userPassword"), XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
call.addParameter(new QName(NAMESPACE,"xmlParam"), XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
// 设置方法的返回值类型
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
call.setUseSOAPAction(true);
// 设置SOAPAction
call.setSOAPActionURI(NAMESPACE + "retrieveDocument");
result = (String) call.invoke(new Object[] { userName, userPassword,xmlParam});
return result;
}