AXIS2参照官网入门学习( 连载二 )

Axis2服务是这样的

在创建任何服务之前,了解一个完整工程的结构对我们是很有用的。

Axis2的服务端可以发布在任何Servlet容器中,并且具有如下结构。显示在代码列表2中。

Code Listing 2: The Directory Structure of axis2.war

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

从最上面开始,aixis2-web是一个jsp文件的集合,它组成了Axis2的管理程序,通过这个管理程序,你可以完成任何操作比如添加服务、添加和删除模型。WEB-INF目录包含所有javaclass文件和其他辅助文件,这些辅助性文件可以帮助完成services目录下所有service的发布。

 

WEB-INF下最重要的文件是axis2.xml,这个配置文件用来控制应用如何处理接收到的消息,决定Axis2是否需要申请modules目录下的任何模块。

 

就像你看到的,服务可以被发布成*.aar格式文件,但是他们的目录必须按照制定的方式安排。比如,我们这个服务的结构将是下面这个样子:

- StockQuoteService
   - META-INF
     - services.xml
   - lib
   - samples
     - quickstart
       - service
         - pojo
           - StockQuoteService.class

服务的名字是StockQuoteService,这个会在services.xml中配置并且绑定到服务的最高层目录。编译后的java class文件会根据包名被放置在服务下合适的额位置。Lib目录用来存放除过Axis2 war包中已经存在的和servlet容器用到的基本jar包外所有service运行所需要的指定jar文件。最后,为了Axis2能够恰当的执行这个服务,META-INF目录存放了所有需要用到的附加信息供Axis2使用。Services.xml定义了服务本身并且将class文件关联到服务。(看代码表3

Code Listing 3: The Service Definition File

<service name="StockQuoteService" scope="application">
    <description>
        Stock Quote Sample Service
    </description>
    <messageReceivers>
        <messageReceiver 
            mep="http://www.w3.org/2004/08/wsdl/in-only"
    class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
        <messageReceiver
            mep="http://www.w3.org/2004/08/wsdl/in-out"
    class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
    </messageReceivers>
    <parameter name="ServiceClass">
        samples.quickstart.service.pojo.StockQuoteService
    </parameter>
</service>

 

在相关的messageReceiver类型配置后面,service紧跟着被定义,它会为不同的消息交换模式提供服务。

META-INF目录同时也是你要引入整个工程应用的所有自定义WSDL文件的存放位置。要发布一个服务,你可以简单的将StockQuoteService整个目录下的文件拷贝到servlet容器的webapps/axis2/WEB-INF/services 目录下。(注意:Axis2WAR包必须首先安装到容器)这就是众所周知的爆炸”方式部署 。你也可以将你的工程压缩成一个 .aar文件,类似于.jar文件,然后将*.aar文件直接放置在servlet容器的webapps/axis2/WEB-INF/services目录下。

 

现在你应该明白了我们要做什么了,我们基本上已经做好了创建服务的准备了。

猜你喜欢

转载自liwutao.iteye.com/blog/1461744