服务端具体生成(具体内容):
http://blog.sina.com.cn/s/blog_674522cd01010v66.html
PC客户端测试
package cn.ac.iscas.gz.sems.test;
import java.rmi.RemoteException;
import org.apache.axis2.AxisFault;
import cn.ac.iscas.gz.sems.webservicedemo.HelloWorldStub;
public class webserviceClientTest {
public static void main(String[] args){
try {
HelloWorldStub hss = new HelloWorldStub();
HelloWorldStub.SayHello request = new HelloWorldStub.SayHello();
request.setName("萧_瑟");//为sayHello设置参数
HelloWorldStub.SayHelloResponse response = hss.sayHello(request);
String res = response.get_return();//得到返回结果
System.out.println(res);
} catch (AxisFault e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
android客户端测试
package gz.iscas.ac.cn.webService;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class WebServiceDemoAndroidActivity extends Activity {
private static String NAMESPACE = "http://webServiceDemo.sems.gz.iscas.ac.cn";
// webService地址
// private static String URL = "http://10.0.2.2:8090/axis2/services/helloWorld?wsdl";
private static String URL = "http://192.168.17.76:8090/axis2/services/helloWorld?wsdl";
private static final String METHOD_NAME = "sayHello";
private Button okButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
okButton = (Button) findViewById(R.id.ok);
okButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
showTest();
}
});
}
private void showTest() {
// (1) 指定webservice的命名空间和调用的方法名
SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME);
/**
* (2) 设置调用方法的参数值,如果没有参数,可以省略。 要注意的是,addProperty方法的第1个参数虽然表示调用方法的参数名,
* 但该参数值并不一定与服务端的WebService类中的方法参数名一致,只要设置参数的顺序一致即可。
*/
rpc.addProperty("name", "萧_瑟");
// (3) 生成调用Webservice方法的SOAP请求信息。该信息由SoapSerializationEnvelope对象描述
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.bodyOut = rpc;
envelope.dotNet = true;
envelope.setOutputSoapObject(rpc);
// (4)创建HttpTransportsSE对象。通过AndroidHttpTransport类的构造方法可以指定WebService的WSDL文档的URL
HttpTransportSE ht = new HttpTransportSE(URL);
try {
// (5)使用call方法调用WebService方法
// Call方法的第一个参数一般为null,第2个参数就是在第3步创建的SoapSerializationEnvelope对象
// ht.call(SOAP_ACTION, envelope);
ht.call(null, envelope);
// (6)使用getResponse方法获得WebService方法的返回结果
String result = String.valueOf(envelope.getResponse());
System.out.println("result " + result.toString());
Toast.makeText(WebServiceDemoAndroidActivity.this, result,
Toast.LENGTH_LONG).show();
} catch (Exception e) {
e.printStackTrace();
}
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="gz.iscas.ac.cn.webService"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".WebServiceDemoAndroidActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
http://115.com/file/c2b72qy5
分享到:
相关推荐
总结,Android利用Axis2调用Web Service涉及服务端接口设计、客户端代码实现、网络请求和数据解析等多个环节。了解这些知识点有助于构建稳定可靠的跨平台通信。在实际开发中,还需要考虑错误处理、性能优化以及安全...
【描述】: "本教程详细介绍了如何使用axis2在eclipse和tomcat环境下构建webService服务,并阐述了如何让Android应用程序调用这些服务,包括传递自定义类型参数和集合。" 【标签】: "webService", "axis2" 【正文】...
1. **服务端代码**:包含使用Axis2和Java编写的Web服务实现,可能有接口定义、服务类和配置文件。 2. **客户端代码**:这部分可能包含一个简单的iOS应用,演示如何使用AXIS2 Web服务,可能包括请求构建、发送、解析...
综上所述,本文档详细介绍了WebService的基本概念、工作原理以及如何使用Axis2框架构建WebService服务器和客户端。对于初学者来说,掌握这些知识是非常重要的,有助于更好地理解和应用这项技术。
在Android应用开发中,与服务器端进行数据交互是必不可少的部分。本文将详细介绍如何基于SOAP协议整合Android与Web服务,以便在Android客户端调用服务器提供的功能。SOAP(Simple Object Access Protocol)是一种轻...
在PC上,我们通常会使用如XFire、Axis2或CXF等库来访问WebService,但在资源有限的Android设备上,我们需要寻找更适合的解决方案。 KSOAP2是一个适用于Android的轻量级库,专门用于处理SOAP通信。在开始使用KSOAP2...
SOAP是一种基于XML的协议,适合复杂的、结构化的数据交换,而REST则更轻量级,常用于简单的数据获取和更新。 步骤一:构建Web Service 1. 创建一个Java类作为服务接口,定义所需的方法。这些方法通常会返回XML或...
Java调用WebService是一种常见的跨平台通信方式,尤其在Android应用开发中,经常需要与服务器进行数据交互。本示例将详细介绍如何使用Axis和KSOAP2这两个库在Java环境中调用WebService。 首先,让我们理解一下标题...
本文将深入探讨Android如何利用kSOAP2库与基于Axis的WebService进行通信,以及如何处理Servlet返回的数据,特别是JSON数组。 一、Android与WebService的交互:kSOAP2 1. **kSOAP2介绍**:kSOAP2是一个轻量级的开源...
标题 "axis+ksoap2开发webservice配置指南" 涉及到的是在Java环境中使用Axis框架和ksoap2库来创建和调用Web服务的过程。 Axis是Apache软件基金会的一个开源项目,它允许开发者通过简单的API来创建和部署Web服务,而...
在Android开发中,有时我们需要与远程服务器进行交互,获取或发送数据,这时Web Service就扮演了重要的角色。本文将深入探讨如何使用kSOAP库在Android应用中调用WebService,同时也会涉及利用Axis插件创建服务端的...
KSOAP2提供了一套简洁的API,使得Android开发者可以轻松地与WebService进行交互,从而实现跨平台的数据交换。在进行Android开发时,掌握KSOAP2的使用对于提升应用程序的功能性和灵活性是非常有帮助的。
在Android开发中,有时我们需要与服务器进行数据交互,这时候Web Service接口就显得尤为重要。Web Service是一种基于SOAP(Simple Object Access Protocol)协议的跨平台通信方式,允许不同系统间的数据交换。由于...
Web服务,尤其是基于SOAP(简单对象访问协议)的WebService,允许不同平台、语言和系统的应用之间进行通信。然而,Android SDK本身并不直接支持SOAP通信,因此我们需要依赖第三方库,比如KSOAP2,来实现这一功能。 ...
首先,理解WebService的核心概念:它是一种基于SOAP(Simple Object Access Protocol)协议的远程调用标准,允许不同操作系统、编程语言和应用之间的数据交换。在OPhone或Android系统中,由于原生SDK并未提供调用...
在Android开发中,调用Web服务是常见的需求,尤其是当需要与服务器进行数据交互时。Web服务,特别是基于SOAP协议的WebService,允许不同平台和语言之间进行通信。然而,Android SDK本身并未提供直接调用WebService的...
ksoap2支持多种协议版本,如SOAP 1.1和SOAP 1.2,并且提供了易于使用的API,使得开发者能够轻松地与WebService进行交互。 #### 三、环境配置 在开始编写代码之前,需要确保Android项目的环境配置正确。这包括添加...
在Android开发中,有时我们需要与服务器进行数据交互,比如上传用户的数据或文件,例如图片。在本场景中,我们将探讨如何使用Ksoap2库来连接WebService实现图片上传功能。Ksoap2是一个轻量级的库,它使得Android应用...