WebService开发实例(Axis2实现,无需安装,快速实现)

曾经做过的项目里涉及Android客户端向服务器发送请求,服务器访问数据库获得数据并返回给Android客户端。当时Android客户端与服务器的通信已经实现,我只负责客户端布局和数据呈现的部分,近日有遇到类似项目,所以计划完整的研究和实现一下整个通信过程。

目前选择的方案是服务器端开启Webservice,Android客户端通过第三方的ksoap jar包访问,对象传递采用Jason序列化。那么现在遇到的第一个问题就是服务器实现webservice。

接下来上网查资料,选择Axis2,大多都需要安装,事实上我参考上一个项目,很快速的实现了Webservice,下边展示一下这个过程。

1. 首先现在Axis,在http://axis.apache.org/axis2/java/core/download.cgi 我选择的是目前最新的axis2-1.6.2。

2. 创建一个Web Project。起名WebserviceTest。

3. 创建一个类

package com.shuai.test;

public class HelloService {   
	public String sayHello(){  
        return "hello";  
    }             
    public String sayHelloToPerson(String name){       
        if(name==null){  
            name = "nobody";  
        }             
        return "hello,"+name;  
    }  
}  

4. 解压缩下载的axis2-1.6.2,将对应的内容贴到工程中去。

分别是:lib下的jar包复制到WebRoot/WEB-INF/lib目录下。

           conf目录整个复制到WebRoot/WEB-INF/中。

           repository目录下的modules目录复制到WebRoot/WEB-INF/中。

           repository目录下的services目录复制到WebRoot/WEB-INF/中。

           在services目录下创建目录helloservice/META-INF/,在其中创建services.xml,内容如下:

     

<?xml version="1.0" encoding="UTF-8"?>  
<service name="HelloService">  
    <description>  
        Web Service
    </description>  
    <parameter name="ServiceClass">  
        com.shuai.test.HelloService  
    </parameter>  
    <messageReceivers>  
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"  
            class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />  
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"  
            class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />  
    </messageReceivers>  
</service>  

           修改web.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  
  <servlet>
    <servlet-name>AxisServlet</servlet-name>
    <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>
</web-app>

此时项目目录结果如图:

现在可以Run起来了,tomcat启动之后,在浏览器输入http://localhost:8080/WebserviceTest/services/HelloService/sayHelloToPerson?name=shuai

就可以看到效果了:

OK,这说明基本的Webservice已经可以发布访问了,剩下的可以加入Hibernate、Ibatis等访问数据库,加入Struct,Spring等框架,实现更复杂的功能,但是Webservice访问接口的道理是相同的。

目前Webservice算是尝试成功了,但某些具体配置还不是太清楚,现在只是记录一次成功的经验,和大家分享。

 

 

posted @ 2013-07-03 23:07  苍穹逸影  阅读(452)  评论(0编辑  收藏  举报