PS :
1.前提AXIS必须已配置好
2.端口用你自己的
3.服务名不一定用helloWorld,用你自己定义的,在部署aar的时候可看。
4. 生成stub有2种方法, 一种用WSDL2Java ; 一种还是利用插件 。 网上查了下说用插件经常出错,这里还是用WSDL2Java吧。
1.5
PS:别忘了导入包,不知道要哪些包的就将AXIS2
以上说的是PC端的客户端数据交互测试
四、生成客户端(Android端)
1. 建立android客户端测试项目
2. AndroidManifest.xml中 开启网络权限
<uses-permission android:name="android.permission.INTERNET" />
3.android客户端测试代码
PS:记得导入ksoap2包
http://code.google.com/p/ksoap2-android/downloads/list?can=1&q=
4. 运行结果:
==============================================================================
总结:
1. 工作前要配置的东西比较多
2.对于数据的交互,这只是一个小例子,网上也有很多,我也是查了很多资料,可以看
看“android天气预
3.android端模拟机测试本机数据交互的时候URL不可以写成localhost,你可以写成:
http://10.0.2.2:8090/axis2/services/helloWorld?wsdl
http://192.168.17.76:8090/axis2/services/helloWorld?wsdl
4.一些参考文档资料:
http://wenku.baidu.com/view/82380e2d2af90242a895e532
/**
* 调用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后没问题
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。