首先到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() {@Overridepublic 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,切记

更多相关文章

  1. Android(安卓)8.1.0 SystemUI 修改之 - 系统锁屏状态下点击用户
  2. [ZZ][Android]使用bindService启动服务
  3. OpenCV Android(安卓)通过 jni调用 使用opencv (Android(安卓)St
  4. Android(安卓)N调用系统安装APK方法报错原因整理及解决方案
  5. 【转】android progressbar 自定义样式
  6. Linux/Android(安卓)NDK wchar_t 陷阱
  7. AndroidStudio Frameworks detected: Android(安卓)framework is
  8. Android4.2和4.3中enable bluetooth
  9. android Error: unterminated entity ref 问题

随机推荐

  1. Android中Bitmap内存占用分析
  2. Android操作数据连接和Wifi
  3. Android多线程系列(一) AsyncTask基本使用
  4. 四通道手机和Android的信用卡替代
  5. Android(安卓)基础知识之 VelocityTracke
  6. Android之使用SoundPool播放一小段音频,实
  7. Android(安卓)XML解析Pull方式———解析
  8. Android一种实现夜间模式方式,同时解决调
  9. Android基于IIS的APK下载(一)自定义更新
  10. Android(安卓)自定义侧滑菜单