Android调用Java EE+axis2搭建的webservice服务详解
来源:互联网 发布:手残大联盟2杀人网络 编辑:程序博客网 时间:2024/05/14 14:54
这里用一个简单的Android例子来调用Java EE+axis2搭建的webservice服务。
说明:这里JavaEE+axis2搭建的webservice服务采用的是方法二生成aar包(http://blog.csdn.net/yuyinghua0302/article/details/50440506)
需要下载:ksoap2-android.jar
1 新建android项目,将ksoap2-android.jar包导入项目,对AndroidManifest.xml文件进行修改,添加网络访问权限,代码如下:
<uses-permission android:name="android.permission.INTERNET"/>
2 布局文件activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <EditText android:id="@+id/name_editview" android:layout_width="match_parent" android:layout_height="52dp" android:hint="请填入姓名"/> <Button android:id="@+id/people_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="获取名字" /> <TextView android:id="@+id/show" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="AutoCompleteTextView" > </TextView></LinearLayout>
3 新建负责请求webService的工具类WebServiceOpra.java,代码如下:
package com.example.utils;import java.io.IOException;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;import org.xmlpull.v1.XmlPullParserException;public class WebServiceOpra { // 自定义类型参数 public static String people_name(String name) { String SERVER_URL = "http://192.168.0.107:8080/axis2/services/TestNameSercive.TestNameSerciveHttpSoap12Endpoint/"; final HttpTransportSE httpSE = new HttpTransportSE(SERVER_URL); String PACE = "http://method.example.com"; String M_NAME = "getName"; SoapObject soapObject = new SoapObject(PACE, M_NAME); soapObject.addProperty("name", name); final SoapSerializationEnvelope soapserial = new SoapSerializationEnvelope(SoapEnvelope.VER11); soapserial.bodyOut = soapObject; // 设置与.NET提供的Web service保持有良好的兼容性 soapserial.dotNet = true; try { httpSE.call(PACE + M_NAME, soapserial); } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } SoapObject result = (SoapObject) soapserial.bodyIn; System.out.println("result:" + result); return result.toString(); }}
其中SERVER_URL与PACE可以从从相关WSDL文档中查看(http://localhost:8080/axis2/services/TestNameSercive?wsdl)
注意:SERVER_URL中需要写的是ip地址,本地发布也不能写localhost
4 MainActivity.java文件代码如下
package com.example.testclient;import com.example.utils.WebServiceOpra;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class MainActivity extends Activity{ TextView show_tv; Button people_btn; EditText name_edit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); show_tv = (TextView) findViewById(R.id.show); people_btn = (Button) findViewById(R.id.people_button); name_edit=(EditText)findViewById(R.id.name_editview); people_btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { new Thread() { @Override public void run() { super.run(); Looper.prepare(); String name=name_edit.getText().toString(); Log.i("name-----",name); String result = WebServiceOpra.people_name(name); Message msg = new Message(); msg.what = 0x12; msg.obj = result; mHandler.sendMessage(msg); } }.start(); } }); } Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 0x12) { show_tv.setText(msg.obj.toString()); } } };}
5 运行结果如下:
0 0
- Android调用Java EE+axis2搭建的webservice服务详解
- Java EE+axis2搭建webservice服务(一)
- Java EE+axis2搭建webservice服务(二)
- axis2 webService服务搭建
- Java Axis2搭建WebService
- axis2客户端调用免费的webservice服务的实例
- axis2 写webservice服务 和 被调用 的整个过程
- java 调用axis2 webservice示例
- axis2客户端调用免费的webservice服务的实例之三axis2使用RPC方式调用网上免费WebService
- axis2 webservice服务开发及调用
- axis2 发布 webservice 和 java调用webservice
- axis2调用天气的webservice
- java axis2 webservice 接口的开发搭建和demo
- Android调用Tomcat+axis2发布的WebService常见问题
- java使用AXIS2调用asp.net的WebService
- java使用AXIS2调用asp.net的WebService
- JAVA 调用Axis2 code generator 生成的webservice
- 使用Axis2用Java实现调用WebService的客户端程序
- 【OpenGL】学习笔记之常用函数(二)
- C++中智能指针的工作原理和简单实现
- Android 内存管理 Environment
- Objective-C Runtime
- Android的数据存储
- Android调用Java EE+axis2搭建的webservice服务详解
- 黑马程序员——IO流及其他常见流
- 千万级到10亿+的疯涨,搜狗商业平台服务化体系实践之路
- Spark实现HIVE统计结果导入到HBase操作
- symfony中session存入到memcache中都使用方法总结
- C++中的函数对象(Function Object)
- 就绪表 学习笔记
- centos magento redis
- 【SQL Server】导出一张表的建表语句、查询某表的列(字段)名