欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Web Service发布基础篇(一)之AXIS2 AXIS2WebServiceTomcat

程序员文章站 2022-06-16 14:27:53
...

 一、AXIS2简

       AXIS2是WebService/SOAP/WSDL的引擎,是Appache AXIS 1.x的衍生版。支持更强的模块化、更高的灵活性、更有效地体系结构,可以更容易地与其他Web Service 服务标准与协议(如 WS-Security、WS-ReliableMessaging 等)结合。具有以下特点:

  • 采用AXIOM的XML处理模型,支持灵活定义对象模型。
  • 支持不同的消息交换模式:In-Only、Robust-In和In-Out 。In-Only消息交换模式只有SOAP请求,而不需要应答;Robust-In消息交换模式发送SOAP请求,只有在出错的情况下才返回应答;In-Out消息交换模式总是存在SOAP请求和应答。   
  • 提供阻塞与非阻塞的API。
  • 支持内置的服务寻址(WebService-Addressing)。
  • 灵活的数据绑定与Web Service发布方式:支持POJO(Plain Old Java Object)、AXIOM、XMLBeans、JiBX、JAXB 2.0等。
  • 全新的部署模型,支持热部署、热更新。
  • 支持HTTP、SMTP、JMS、TCP传输协议。
  • 支持REST(Representational State Transfer)。

 二、AXIS2的下载与部署

   1.首先,在客户机安装appache tomcat以及jdk基础环境。

     2.在http://axis.apache.org/axis2/java/core/下载AXIS2的压缩包

     目前,AXIS2的最新版本是1.6.3(2015.6.27)。本文下载1.6.2(2012.4.17)版本。

     下载列表:

     axis2-1.6.2-bin.zip               AXIS2完整版,支持WS-Addressing与SOAP-Moniter

     axis2-1.6.2-war.zip               AXIS2 Web容器部署版本

     3.解压axis2-1.6.2-war.zip文件,然后将axis2.war文件拷贝到<Tomcat安装目录>\webapps目录,启动Tomcat,在浏览器地址栏输入AXIS2的URL(http://localhost:8080/axis2/),axis2.war会自动解压缩,如果,AXIS2的主页面则表示加载成功。

 

 三、编写与发布WebService

     (1)POJO方式发布(无需任何设置 )

     在AXIS2中无需任何设置,可以让简单的POJO发布成Web Service。其中POJO的public方法会发布成为Web Service方法。

   

public class AXISHelloService {
    public String sayHello(){
        return "Hello AXIS";
    }
    public String sayHelloToPerson(String name){
        if(name==null){
            name = "no body";
        }
        return "AXIS Hello,"+name;
    }
}

  编译AXISHelloService类后,将AXISHelloService.class文件拷贝到<Tomcat安装目录>\webapps\axis2\WEB-INF\pojo目录中。现在AXISHelloService已经发布成服务。  

    在浏览器地址栏中输入如下的URL,查看服务列表:
     http://localhost:8080/axis2/services/listServices

   在浏览器中输入两个URL测试sayHello与sayHelloToPerson方法:

    http://localhost:8080/axis2/services/AXISHelloService/sayHello

    http://localhost:8080/axis2/services/AXISHelloService/sayHelloToPerson?name=bill

    

<ns:sayHelloToPersonResponse xmlns:ns="http://ws.apache.org/axis2">
  <return>AXIS Hello,bill</return>
</ns:sayHelloToPersonResponse>

   在编写、发布与测试AXIS2.0服务时,注意以下方面:

  • POJO不能使用package关键字声明包。
  • AXIS2默认,热发布Web Service。即只要将Web Service的.class文件复制到pojo目录时,tomcat无需重新启动,即可自动发布Web Service。Web Service热发布的配置项在<Tomcat安装目录>\webapps\axis2\WEB-INF\conf\axis2.xml文件中,找到如下配置项:
     <parameter name="hotdeployment">true</parameter>
  • AXIS2默认,是非热更新,即一旦发布Web Service,再更新Web Service,必须重启Tomcat。如果想设置AXIS2是热更新,则修改axis2.xml的以下配置项:
     <parameter name="hotupdate">false</parameter>
  • 在浏览器中测试WebService时,如果WebService方法有参数,需要使用URL的请求参数来指定该WebService方法。
  • 发布Web Service的默认路径的pojo,可以手动添加其他目录,打开axis2.xml,在<axisconfig name="AxisJava2.0">节点之间,添加如下配置项
<deployer extension=".class" directory="deployPOJO" class="org.apache.axis2.deployment.POJODeployer"/>

         (2)使用services.xml配置文件发布 

          AXIS2引擎发布Web Service,虽然POJO类直接拷贝至axis2\WEB-INF\pojo目录直接发布成Web Service,无需任何配置,但这些类无法处于任何包内。因此,AXIS2提供支持处于包中的POJO类发布成Web Service的方式,即services.xml方式。