Axis2快速上手指南(创建WS 服务)

上一篇 / 下一篇  2009-06-01 14:06:01 / 个人分类:Web Service

原文链接:http://ws.apache.org/axis2/1_1_1/quickstartguide.html
本指南的目的是让你尽可能快的创建使用Axis2的服务和客户端,我们将使用一个简单的StockQuote服务并显示给你一些创建和部署它
的不同的方式,以及快速的看看Axis2自带的一些工具,然后我们将看看创建访问这些服务的客户端。

内容

Java代码

  1. 介绍  
  2. 做好准备  
  3. Axis2服务  
  4. 创建服务  
  5.     部署POJOs   
  6.     使用AXIOM构建服务  
  7.     使用ADB生成服务  
  8.     使用XMLBeans生成服务  
  9.     使用JiBX生成服务  
  10. 生成客户端  
  11.     使用AXIOM创建一个客户端  
  12.     使用ADB生成一个客户端  
  13.     使用XMLBeans生成一个客户端  
  14.     使用JiBX生成一个客户端  
  15. 总结  
  16. 进一步学习  

介绍

做好准备

Axis2服务

创建服务

   部署POJOs

   使用AXIOM构建服务

   使用ADB生成服务

   使用XMLBeans生成服务

   使用JiBX生成服务

生成客户端

   使用AXIOM创建一个客户端

   使用ADB生成一个客户端

   使用XMLBeans生成一个客户端

   使用JiBX生成一个客户端

总结

进一步学习



快速安装笔记:
文档的代码可以在解压的标准二进制发布[/url]找到,更明确的位于其中的Axis2_HOME/samples/目录-quickstartquickstartdb
quickstartaxiom
quickstartjibxquickstartxmlbeans,如果你继续下去它将帮你掌握它。它包含一个Ant构建文件(build.xml)
贯穿所有的例子我们将提到它来使得编译更容易。

介绍
让我们以服务本身开始。我们将使它简单,所以你可以看到当我们构建并部署服务时会发生什么,一个StockQuoteService例子看起来
像这个,所以让我们使用下面的(参看Code Listing 1)
Code Listing 1: StockQuoteService

Java代码

  1. package samples.quickstart.service.pojo;   
  2.   
  3. import java.util.HashMap;   
  4.   
  5. public class StockQuoteService {   
  6.     private HashMap map = new HashMap();   
  7.   
  8.     public double getPrice(String symbol) {   
  9.         Double price = (Double) map.get(symbol);   
  10.         if(price != null){   
  11.             return price.doubleValue();   
  12.         }   
  13.         return 42.00;   
  14.     }   
  15.   
  16.     public void update(String symbol, double price) {   
  17.         map.put(symbol, new Double(price));   
  18.     }   
  19. }  

package samples.quickstart.service.pojo;

 

import java.util.HashMap;

 

public class StockQuoteService {

   private HashMap map = new HashMap();

 

   public double getPrice(String symbol) {

       Double price = (Double) map.get(symbol);

       if(price != null){

           return price.doubleValue();

       }

       return 42.00;

   }

 

   public void update(String symbol, double price) {

       map.put(symbol, new Double(price));

   }

}


它将为一个具有两个可能的调用的简单服务,其中一个是一个in/out消息,另一个则为一个只能in的服务,最终我们将打包服务并用四种不同的方式部署部署它。
首先,让我们看看这个简单的Java类怎样响应一个服务。

做好准备
在我们使用Axis2构建任何东西之前,我们将需要关注一些家务事。现在你将需要准备好你使用Axis2的环境,幸运的是,它只包括一
些简单的步骤:
1
,下载并安装Java(版本至少为JDK1.4)
2
,下载Axis2并解压到一个目标目录
3
,复制axis2.war文件到你的servlet引擎的webapps目录
4
,设置AXIS2_HOME环境变量来指出目标目录,注意Axis2生成的所有脚本和构建文件依赖于这个值,所以不要遗漏了这个步骤。
大多数情况下,我们的服务也将需要一个WSDL文件,Axis2Java2WSDL可以用来生成一个WSDL。执行以下步骤来从一个Java类生成一
WSDL文件:
1
,创建并编译Java
2
,使用该命令生成WSDL:
%AXIS2_HOME%/bin/java2wsdl -cp . -cn samples.quickstart.service.pojo.StockQuoteService -of StockQuoteService.wsdl
移动你生成WSDL文件,你可以做你需要的任何更改。例如,你可能添加自定义的过错或者改变生成的元素名。例如,该StockQuoteSer
vice.wsdl
位于%AXIS2_HOME%/samples/quickstartadb/resources/META-INF文件夹,我们将在本指南的其他部分使用它,代替生成过
程创建的一般参数。

Axis2
服务
在我们构建任何东西之前,理解最终产品看起来像什么是有用的。Axis2的服务器端可以被部署在任何Servlet引擎上,并且有如下的
Code Listing 2
显示的结构。
Code Listing 2: axis2.war
的目录结构

Java代码

  1. axis2-web    
  2. META-INF   
  3. WEB-INF   
  4.     classes    
  5.     conf   
  6.         axis2.xml    
  7.     lib   
  8.         activation.jar   
  9.         ...   
  10.         xmlSchema.jar   
  11.     modules   
  12.         modules.list    
  13.         addressing.mar   
  14.         ...   
  15.         soapmonitor.mar   
  16.     services   
  17.         services.list   
  18.         aservice.aar   
  19.         ...   
  20.         version.aar   
  21.     web.xml  

axis2-web

META-INF

WEB-INF

   classes

   conf

       axis2.xml

   lib

       activation.jar

       ...

       xmlSchema.jar

   modules

       modules.list

       addressing.mar

       ...

       soapmonitor.mar

   services

       services.list

       aservice.aar

       ...

       version.aar

   web.xml


从最上面开始,axis2-web是组成Axis2管理程序的一些JSPs,你可以通过它来执行任何需要的动作,例如添加服务,使用模块和禁止
模块。WEB-INF包含了运行部署到服务目录的任何服务的实际上的java类和其他支持文件。
这里主要的文件是axis2.xml,它控制程序怎样与接收的消息打交道,决定Axis2是否需要使用模块目录里定义的任何模块。
这里你可以看到,服务可以被部署为*.aar文件,但是它们的内容必须以一个特殊的方式安排。例如,服务的结构将为如下:

Java代码

  1. - StockQuoteService   
  2.    - META-INF   
  3.      - services.xml   
  4.    - samples   
  5.      - quickstart   
  6.        - service   
  7.          - pojo   
  8.            - StockQuoteService.class  

TAG:

 

评分:0

我来说两句

日历

« 2024-05-29  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 3382
  • 日志数: 7
  • 建立时间: 2009-05-06
  • 更新时间: 2009-06-01

RSS订阅

Open Toolbar