PS :
1.前提AXIS必须已配置好
2.端口用你自己的
3.服务名不一定用helloWorld,用你自己定义的,在部署aar的时候可看。
4. 生成stub有2种方法, 一种用WSDL2Java ; 一种还是利用插件 。 网上查了下说用插件经常出错,这里还是用WSDL2Java吧。
PS:别忘了导入包,不知道要哪些包的就将AXIS2
以上说的是PC端的客户端数据交互测试
四、生成客户端(Android端)
PS:记得导入ksoap2包
http://code.google.com/p/ksoap2-android/downloads/list?can=1&q=
==============================================================================
总结:
下面是一个调用webserver的准确例子
/**
* 调用webservice
*
* @param json
* @return
*/
public String sendMsg(String json) {
try {
SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME);
rpc.addProperty("arg0", json);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = false;
envelope.encodingStyle = "UTF-8";
envelope.setOutputSoapObject(rpc);
new MarshalBase64().register(envelope);
HttpTransportSE aht = new HttpTransportSE(URL, 60 * 1000);
aht.call(SOAP_ACTION, envelope);
Object result = (Object) envelope.getResponse();
Log.d(TAG, result.toString());
return String.valueOf(result);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
envelope.encodingStyle = "UTF-8";
new MarshalBase64().register(envelope);
new HttpTransportSE(URL, 60 * 1000);这一句没有加超时
2另外刚才刚调试是第一次出现错误:
org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://www.w3.org
查查后这个事SOAP版本问题,改成11后没问题