Web Service基础篇(一)之AXIS2

原创 2015年11月20日 22:21:28

一、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.下载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的http://localhost:8080/axis2/,axis2.war会自动解压缩,如果,显示AXIS2的主页面则表示加载成功。

 三、编写与发布Web Service

(1) POJO方式(无需任何配置)

      无需任何配置,即可让POJO类部署成AXIS2中的Web Service。

      1.1  编写POJO类

<span style="font-family:Microsoft YaHei;font-size:12px;font-weight: normal;">public class AXISHelloService {
    public String sayHello(){
         return "Hello AXIS";
    }
    public String sayHelloToPerson(String name){
        if(name==null){
           name = "no body";
        }
        return "AXIS Hello,"+name;
    }
}</span>


         1.2  发布WebService

编译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=Jack

      

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

   

        1.3  注意事项

       在编写POJO类、发布与测试AXIS2.0 Web Service时,注意以下方面:

  • 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,再更新Web Service,必须重启Tomcat。如果想设置AXIS2是热更新,则修改axis2.xml的以下配置项:
    <parameter name="hotupdate">false</parameter>
  • 在Web浏览器测试WebService时,必须使用URL的请求参数来指定WebService方法的SOAP请求参数。
  • 发布Web Service的默认路径是<Tomcat安装目录>\webapps\axis2\WEB-INF\pojo,可以添加其他路径,编辑axis2.xml文件,在<axisconfig name="AxisJava2.0">节点之间,添加如下配置项,即可让<Tomcat安装目录>\webapps\axis2\WEB-INF\deployPOJO路径成为发布Web Service的目录
   <deployer extension=".class" directory="deployPOJO" class="org.apache.axis2.deployment.POJODeployer"/>

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

       基于AXIS2引擎发布Web Service时,虽然直接拷贝POJO类至axis2\WEB-INF\pojo目录,无需任何配置,已经完成Web Service发布,但这些POJO类无法

处于任何包内。因此,AXIS2提供支持处于包中的POJO类发布成Web Service的方式,即services.xml方式。services.xml方式发布Web Service可以采用两种方

式:(1).aar压缩包格式;(2)非压缩格式。

     2.1 .aar压缩包格式

     2.1.1 编写POJO类
     编写计算服务类,实现decimal数据的四则运算。源代码如下:

       

package com.efo.service;

import java.text.DecimalFormat;

/**
 * Created by Jack Lee  on 2015/11/21.
 *
 */
public class CalculateService {
    /**
     * a plus b
     * @param a
     * @param b
     * @return   a + b
     */
    public float plus(float a,float b){
        return a+b;
    }

    /**
     * a minus b
     * @param a
     * @param b
     * @return   a - b
     */
    public float minus(float a,float b){
        return a -b;
    }

    /**
     * a multi b
     * @param a
     * @param b
     * @return   a * b
     */
    public float multi(float a,float b){
        return a * b;
    }

    /**
     * a divide b
     * @param a
     * @param b
     * @return   a / b
     */
    public float divide(float a, float b){
        if(b==0){
            return -1;
        }
        DecimalFormat decimalFormat = new DecimalFormat("#.##");
        return Float.parseFloat(decimalFormat.format(a/b));
    }
}

      2.1.2 编写services.xml文件
<!--Service Name-->
<service name="CalculateService">
    <!--Service Description-->
    <description>Calculate Service</description>
    <!--Service Class Name-->
    <param name="ServiceClass">com.efo.service.CalculateService</param>
    <!--Service Message Receiver-->
    <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>

  2.1.3 发布Web Service
     编译源文件CalculateService.java文件,然后新建如下文件夹:
     d:\WS\com\efo\service\CalculateService.class
     d:\WS\META-INF\services.xml

     在Windows cmd命令行,进入d:\WS目录,运行命令行,生成.aar包: 

   jar cvf calcservice.aar 

      然后复制calcservice.aar包到<Tomcat安装目录>\webapps\axis2\WEB-INF\services目录,完成Web Service发布。


版权声明:本文为博主原创文章,未经博主允许不得转载。

Java Web开发实战经典(基础篇)

Applet Applet是采用Java编程语言编写的小应用程序,该程序可以包含在 HTML(标准通用标记语言的一个应用)页中,与在页中包含图像的方式大致相同标题 MVC全名是Model ...
  • u010504185
  • u010504185
  • 2017年02月08日 15:02
  • 1227

使用axis2进行WebService的开发

使用axis2进行WebService的开发 Apache Axis2 是 Apache Axis SOAP 项目的后继项目。此项目是 Web 服务核心引擎的重要改进,目标是成为 Web 服务和面向...
  • xumengxing
  • xumengxing
  • 2013年10月30日 21:03
  • 43855

WebService学习之旅(七)Axis2发布WebService的几种方式

前面几篇文章中简单的介绍了如何使用Axis2发布WebService及如何使用Axis2实现Web服务的客户端调用,本节將详细介绍Axis2发布WebService的几种方式。一、使用aar包方式发布...
  • Rongbo_J
  • Rongbo_J
  • 2016年03月29日 19:29
  • 3979

axis2 发布web service

  • 2010年02月22日 16:58
  • 79KB
  • 下载

基于Axis2和Tomcat的自动化可配置Web Service开发文档,源码和测试工程代码

  • 2013年05月11日 22:01
  • 422KB
  • 下载

用axis2开发web service

  • 2010年05月06日 17:37
  • 853KB
  • 下载

axis2 实例 web service实践

  • 2008年12月01日 12:26
  • 18.72MB
  • 下载

建立基于AXIS2的Web Service Java客户端

  • 2009年01月15日 10:27
  • 68KB
  • 下载

web service Axis2相关jar包

  • 2013年09月27日 15:47
  • 1.64MB
  • 下载

WebService大讲堂之Axis2及其它web service资料

  • 2010年08月30日 22:43
  • 1.6MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Web Service基础篇(一)之AXIS2
举报原因:
原因补充:

(最多只允许输入30个字)