Android移动互联WebServlce技术之Asix2

一:开发环境搭建

这里假设Android的基础开发环境已经搭建好了,现在要进行搭建的是Axis2和Tomcat服务器;

1:搭建Tomcat服务器

找到"windows"下的"preferences"然后按下列图片顺序操作

点击"add"

注意:上面的复选框一定要勾选

现在tomcat服务器配置好了,在Eclipse-Android的IDE开发工具中你会发现多了一个叫做"servers"的项目,然后在server导航栏下也有了一个新的服务器

2:配置Axis2

假设你已经下载好了Axis2的压缩包,将其任意压缩至某一个文件目录下,比如:D:\Programings\axis2-1.6.1,然后在计算机中配置环境变量AXIS2_HOME

现在我们要做的就是怎样让创建的Web程序和Axis2关联起来,下面用一个演示程序来说明

"New" 一个web project

在这里你要选定之前设定的Tomcat服务器名称,并选择运用哪一种WebService服务器,点击"Modify"

勾选上图中的Axis2 Web Services ,点击“Save as” 在这个对话框中,编辑自己可以设定的名字来标识,如:Axis2_Services

现在在项目CloudService下你将看到多了一个"asis2_web"的文件夹,并且在JRE System Library中将有很多axis2应用的jar包;

如此开发环境已经搭建好了,现在就通过一个简单的加法程序来说明怎么使用吧

二:项目案例:移动互联加法案例

在CloudService项目src文件夹下新建一个java类Calculate

复制代码
package com.chinasoft.service;

public class Calculate {

    public int add(final int num1,final int num2){
        return num1+num2;
    }
}
复制代码

这样,这个逻辑类就写好了,那怎么样才能让Android端才能调用这个程序呢,不要急,先将该类发布到WebService上,右击该类名,选择"Web Services "--->"create web service",将会跳转到Web Service 的验证界面

检验之后,如果没有错,就执行“next”,这里也可以开启服务器Tomcat;

然后转到"Java EE"

点击打开最后一个图标

同上一步

再点击"WSDL Main"

输入Web Service 描述语言的地址,格式如下

点击"Go",现在就可以在这里进行测试了;如

上面右边必须点击第一个,因为Apache 的Axis2包只支持SOAP(简单对象访问协议)

2:开发Android端调用程序,使得程序在Android端就能返回结果,而把执行加法的运算交给服务器端执行

界面的XML布局文件就不写了,只有一个Button,下面就给出Android调用Web Service的方法步奏

复制代码
public class MainActivity extends Activity {
    private Button btnCalculate , btnAddUser;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        this.btnCalculate = (Button) findViewById(R.id.btnCalculate);
        this.btnCalculate.setOnClickListener(new ViewOcl());
        
    }
    class ViewOcl implements View.OnClickListener{
        
        String wsdlURL;
        String webMethod;
        String namespace;
        String soapAction;
        SoapObject soapObject;
        SoapSerializationEnvelope envelope;
        HttpTransportSE se;
        
        
        
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
            case R.id.btnCalculate:
                
                int num1 = 12;
                int num2 = 6;
                
                // 步骤1:设置WebService的调用参数 namespace是包名的反转
                wsdlURL = "http://172.31.147.20:8080/CloudService/services/Calculate";
                webMethod = "add";
                namespace = "http://service.chinasoft.com";
                soapAction = namespace + webMethod;
                
                // 步骤2:创建一个对象SoapObject 信封中的信内容
                soapObject = new SoapObject(namespace, webMethod);
                // 步骤3:传递参数 
                soapObject.addProperty("num1",num1);
                soapObject.addProperty("num2",num2);
                
                // 步骤4:创建一个SoapSerializationEnvelope,信封:设定信封传递方式
                envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
                // 步骤5:设置一下传回对象 将信装载到信封
                envelope.bodyOut = soapObject;
                
                // 步骤6:创建HttpTransportSE,用于传输数据,邮递员:将邮递地址给予邮递员
                se = new HttpTransportSE(wsdlURL);                
                try {
                    // 步骤7:发送请求 送信
                    se.call(soapAction, envelope);
                    // 步骤8:获取从互联网返回的结果,测试信有没有送到
                    if(envelope.getResponse() != null){
                        Object result = envelope.getResponse();
                        // 测试:显示结果
                        Toast.makeText(MainActivity.this, "结果为:"+result.toString(), Toast.LENGTH_LONG).show();
                    }
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (XmlPullParserException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
                break;
                
            
            }
        }
        
    }
}
复制代码

这样还不够,我们还需要将ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar添加到Android项目中,这是Android端调用Web Service 必不可少的Jar包

最后在AndroidManifest.xml中添加:

<uses-permission android:name="android.permission.INTERNET"/>

使得Android具有网络通信的功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值