关于 ksoap2调用 webservice 遇到的一些问题
拿到了 webservice 接口调用 不算完整的文档
解决方案: 可能是 ksoap2的 jar包有问题, 换一个试试(虽然原来用的这个jar是好着的,但是这次做的时候 怎么都是500.网上细细查询后,才说换个 jar包试试,换了后确实好了,可能也跟webservice服务器有关系吧,毕竟第三方)
3 遇到这样的错误: java.lang.ClassCastException: org.ksoap2.serialization.SoapPrimitive cannot be cast to org.ksoap2.serialization.SoapObject 解决方案: 其实是在访问的代码中,接收结果的时候一般都是这么写的 //这个来接受返回来的值,但这种方法往往会产生 SoapObject soapObject = (SoapObject)envelope.getResponse();
原因就是,在服务器端返回值是String类型的数值的时候 这两种方法来接受值都会报出错 SoapObject result = (SoapObject) envelope.getResponse();
SoapObject result = (SoapObject)envelope.bodyIn;
所以接收结果代码要改成: Object result = (Object) envelope.getResponse(); 4 . 遇到错误 解决方案: 这个就在ksoap2 中也是访问代码的部分,一般是会这么写的。 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
SoapEnvelope.VER10: 对应的是 SOAP1.0规范 5 . ksoap2调用webservice 成功, 但是返回结果不对。 解决方案: (1)原来我上个公司的webserivice项目里面的 namespace(命名空间) = http://tempuri.org/ (2) 但是这个webservice里面的 namespace(命名空间) = http://www.tempuri.org 这个还是要看清楚的咯 下面粘贴上工具类的方法 public static Object GetWebServiceData(String nameSpace,String doMethod,String wsurl,List<WebParam> List){
Object result = null;
String soapAction = nameSpace + "/"+ doMethod;
//String soapAction = nameSpace + doMethod;
String wsurl1 = wsurl + "?wsdl";
// 2得到KSOAP2的核心对象,并将参数传递给SoapObject
SoapObject request = new SoapObject(nameSpace,doMethod);
if (List != null){
for (WebParam mWebParam : List){
request.addProperty(mWebParam.key,mWebParam.value);
}
}
//类型要注意
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = request;
System.out.println("=envelope.bodyOut=="+ envelope.bodyOut);
//服务器是.net做的
envelope.dotNet = true;
HttpTransportSE se = new HttpTransportSE(wsurl1);
se.debug = true;
try{
se.call(soapAction,envelope);
if (envelope.getResponse() != null){
result = (Object) envelope.getResponse();
}
} catch (Exception e){
System.out.println("==WebServiceUtil=="+ e.toString());
e.printStackTrace();
}
return result;
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |