`

Android + Axis2

 
阅读更多
首先到Apache Axis2官网下载相应的War包,部署到Tomcat webApps文件夹下
下载地址:http://axis.apache.org/axis2

建立一个pojo,放到已经部署到tomcat的axis文件夹的WEB-INF的pojo文件夹下,如果没有自己建一个:
这个是pojo的java代码
import java.util.Random;

public class Test2 {

	public String sayHello(String name) {
		return name + " say: hello [axis2]";
	}
	
	public int getAge(int i) {
		return i + new Random().nextInt(100);
	}
}

下面是Android部分
下载最新的ksoap2-android-assembly-3.0.0-RC.2-jar-with-dependencies.jar包,
下载地址:http://code.google.com/p/ksoap2-android/wiki/HowToUse?tm=2

在Android Application Project 中建立一个文件夹,把Jar包放进去,并引入此Jar包
注意:一定要把这个Jar包所在的文件夹Build Path里设置为Use As Source Folder

接下来是Android Activity代码:

package com.example.testandroidwebservice;

import java.io.IOException;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.SoapFault;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;



import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class LoginActivity extends Activity {
	
	private static final String NAME_SPACE = "http://ws.apache.org/axis2";
	private static final String WDSL_LINK = "http://192.168.1.102:8089/axis2/services/Test2?wsdl";
	private static final String METHOD_NAME = "sayHello";
	
	private Button call_soap;
	private EditText name_input;
	private TextView textView;
	
	private String resultStr;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        
        this.initUI();
        
        this.call_soap.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				callWebService();
			}
		});
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_login, menu);
        return true;
    }
    
    private void initUI() {
    	call_soap = (Button) this.findViewById(R.id.soap_button);
    	name_input = (EditText) this.findViewById(R.id.name_input);
    	textView = (TextView) this.findViewById(R.id.textView);
    }
    
    private void callWebService() {
    	
    	
		Thread thr = new Thread() {
			public void run() {
				try {
					String name = name_input.getText().toString();
					
					//Soap Object 是  SoapSerializationEnvelope的重要组成部分
					SoapObject request = new SoapObject(NAME_SPACE, METHOD_NAME);
					request.addProperty("name", name);
					
					SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
					envelope.bodyOut = request;
					envelope.dotNet = true;
					envelope.setOutputSoapObject(request);
					HttpTransportSE ht = new HttpTransportSE(WDSL_LINK);
					
					ht.call("", envelope);
					
					String ret = String.valueOf(envelope.getResponse());
					
					Log.d("resultStr = ", ret);
					setResultStr(ret);
					
					
				} catch (SoapFault e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				} catch (XmlPullParserException e) {
					e.printStackTrace();
				}
			}
		};
		
		thr.start();
		textView.setText(resultStr);
    	
    }

	public String getResultStr() {
		return resultStr;
	}

	public void setResultStr(String resultStr) {
		this.resultStr = resultStr;
	}
    
}


我发现调用WebService不能用本线程,另外,调用本机的WebService,不能用127.0.0.1和localhost,切记
分享到:
评论

相关推荐

    Android axis调用Webservice

    本文将详细介绍如何在Android应用中利用Axis2来调用Web Service。 **一、Android与Web Service交互基础** 1. **SOAP(Simple Object Access Protocol)**: 是一种轻量级的协议,用于交换结构化的和类型化的信息。...

    Android环境下Ksoap连接Axis2

    Axis2是一个流行的Java Web服务框架,而Ksoap2则是一个轻量级的库,用于在Android平台上实现SOAP(简单对象访问协议)通信。本篇文章将详细介绍如何在Android环境中使用Ksoap2连接到Axis2服务,并且传递自定义类对象...

    axis2搭建webService并包含android调用此WebService服务案例

    【标题】: "axis2搭建webService并包含android调用此WebService服务案例" 【描述】: "本教程详细介绍了如何使用axis2在eclipse和tomcat环境下构建webService服务,并阐述了如何让Android应用程序调用这些服务,包括...

    java调用webservice(axis + ksoap2)

    本示例将详细介绍如何使用Axis和KSOAP2这两个库在Java环境中调用WebService。 首先,让我们理解一下标题中的两个关键组件: 1. **Axis**:Apache Axis是Apache软件基金会开发的一个开源项目,它提供了一个强大的...

    axis2创建webservice操作手册.doc

    ### axis2创建webservice操作手册知识点详述 #### 1. 引言 ##### 1.1 目的 本文档旨在为初次接触WebService技术的开发者提供一份详细的操作指南,帮助他们了解WebService的基本原理以及如何使用Axis2框架来构建...

    android使用ksoap和tomcat使用axis通信

    本篇将详细介绍如何在Android端利用KSOAP2与运行在Tomcat上的Axis Web服务进行通信。 首先,我们需要理解SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在Web上交换结构化和类型化的信息。KSOAP2...

    axis2利用工具

    标题 "Axis2 利用工具" 提到的是一个与网络安全相关的 Axis2 图形化利用工具。Axis2 是一个流行的开放源代码服务导向架构(SOA)框架,它用于构建和部署 Web 服务。在网络安全领域,这个词“利用”通常指的是发现并...

    axis2.war下载

    axis2.war

    axis+ksoap2开发webservice配置指南

    标题 "axis+ksoap2开发webservice配置指南" 涉及到的是在Java环境中使用Axis框架和ksoap2库来创建和调用Web服务的过程。 Axis是Apache软件基金会的一个开源项目,它允许开发者通过简单的API来创建和部署Web服务,而...

    Android与服务器端数据交互(基于SOAP协议整合android+webservice)_.docx

    在PC上,我们通常会使用如XFire、Axis2或CXF等库来访问WebService,但在资源有限的Android设备上,我们需要寻找更适合的解决方案。 KSOAP2是一个适用于Android的轻量级库,专门用于处理SOAP通信。在开始使用KSOAP2...

    axis2 webservice配合苹果写的

    标题中的“axis2 webservice配合苹果写的”表明这是一个关于使用Apache Axis2框架创建Web服务,并且这个服务与苹果(可能是iOS设备或Apple平台)进行交互的教程或示例。Apache Axis2是Java平台上广泛使用的Web服务...

    AXIS14-Android-App

    AXIS14-Android-App 是一个开源项目,源自2014年Visvesvaraya国家技术学院(VNIT Nagpur)的年度技术节AXIS的Android应用程序。这个项目使用了Java编程语言来构建,因此我们可以深入探讨Android应用开发以及Java在...

    CCTVDroid:适用于Android的Axis IP摄像机查看器()

    **CCTVDroid** 是一个专为Android平台设计的应用程序,允许用户远程访问和查看Axis IP摄像机的实时视频流。这款应用的核心功能是提供一个便捷的接口,让用户能够通过移动设备监控安全摄像头,适用于家庭、商业场所等...

    axis-1.4.jar包下载

    android 移动开发 jar包 下载

    Android开发web服务程序

    - 选择`File -> New -> Other`,从弹出的对话框中选取`Axis2Wizards -> Axis2CodeGenerator`。 - 保持`Generate javasource code from WSDL file`选项被选中,点击“Next”。 - 浏览并选择位于`src`目录下的`...

    android 加速度和陀螺仪传感器

    在 Android 中,加速度传感器的类型是 Sensor.TYPE_ACCELEROMETER,它返回加速度传感器值,单位是 m/s^2,有三个方向的值分别是 x-axis、y-axis 和 z-axis 方向加速度。 二、陀螺仪传感器 陀螺仪传感器是一种能够...

    ksoap2-android-assembly-3.6.2-jar-with-dependencies.jar

    最新版ksoap2,官网下载

    Android与服务器端数据交互(基于SOAP协议整合android webservice)

    在Android中,由于资源限制,我们不能直接使用Java客户端中的库(如XFire, Axis2, CXF等)来访问Web服务。这时,KSOAP2库就派上了用场。KSOAP2是一个专门为Android设计的轻量级库,它允许Android应用与使用SOAP协议...

Global site tag (gtag.js) - Google Analytics