加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

基于axis2的webservice和android简单的本地数据交互(下

发布时间:2020-12-17 00:26:00 所属栏目:安全 来源:网络整理
导读:三、生成客户端(PC端) ? ? ? ?1.? 用 WSDL2Java 生 成stub代码 ? ? ? ? ? ? ? 1.1. 在eclipse中建一个普通的java项目工程 webServiceClientDemo ? ? ? ? ? ? ?1.2. 在cmd中进入到该项目工程的根目录 ? ?1.3. 运行命令:WSDL2java -uri http://localhost:80
三、生成客户端(PC端)
????1.?WSDL2Java成stub代码
???????1.1. 在eclipse中建一个普通的java项目工程 webServiceClientDemo
???????1.2. 在cmd中进入到该项目工程的根目录

基于axis2的webservice和android简单的本地数据交互(下)


? ?1.3. 运行命令:WSDL2java -uri http://localhost:8090/axis2/services/helloWorld?wsdl
PS
1.前提AXIS必须已配置好

2.端口用你自己的
3.服务名不一定用helloWorld,用你自己定义,在部署aar的时候可看。

基于axis2的webservice和android简单的本地数据交互(下)


4. 生成stub有2种方法, 一种用WSDL2Java 一种还是利用插件 网上查了下说用插件经常出错,这里还是用WSDL2Java吧。
?????1.4.??执行完命令之后,在eclipse中刷新工程可看到自动生成了3文件:
???
?

基于axis2的webservice和android简单的本地数据交互(下)


?1.5? ?现在可以写客户端测试类了? ?webserviceClientTest.java

基于axis2的webservice和android简单的本地数据交互(下)


PS:别忘了导入包,不知道要哪些包的就将AXIS2??lib文件夹下的包全导进去
?????运行结果:
??????? ?

基于axis2的webservice和android简单的本地数据交互(下)


以上说的是PC端的客户端数据交互测试

四、生成客户端(Android端)
?1. 建立android客户端测试项目? ?webServiceDemoAndroid

基于axis2的webservice和android简单的本地数据交互(下)


?2. AndroidManifest.xml中 开启网络权限
?<uses-permission android:name="android.permission.INTERNET" />
?3.android客户端测试代码

基于axis2的webservice和android简单的本地数据交互(下)


基于axis2的webservice和android简单的本地数据交互(下)


PS:记得导入ksoap2包??网上搜一下??有的下??这里给个链接地址:
http://code.google.com/p/ksoap2-android/downloads/list?can=1&q=
?4. 运行结果:
?

基于axis2的webservice和android简单的本地数据交互(下)


==============================================================================
总结:
?1. 工作前要配置的东西比较多? ?比如:axis、ant、axis2 wizards插件等。
?2.对于数据的交互,这只是一个小例子,网上也有很多,我也是查了很多资料,可以看
?看“android天气预? ?报”的这个例子,可直接google: android webservice。
?3.android端模拟机测试本机数据交互的时候URL不可以写成localhost,你可以写成:
?http://10.0.2.2:8090/axis2/services/helloWorld?wsdl? ?或者是
?http://192.168.17.76:8090/axis2/services/helloWorld?wsdl? ?(这个是自己本机的IP和端口)
?4.一些参考文档资料:
? http://wenku.baidu.com/view/82380e2d2af90242a895e532.html

??http://wenku.baidu.com/view/8470cb0d6c85ec3a87c2c547.html



下面是一个调用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;
}


1我以前的代码和你的代码有一下不同处:
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后没问题

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读