`
rayn115
  • 浏览: 69024 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Axis2部署WebService

    博客分类:
  • Java
阅读更多

Axis2下提供了三种配置文件,一种是整个系统的全局配置axis2.xml,第二个是服务配置services.xml,第三个是模块配置module.xml。

一、全局配置axis2.xml文件

配置全局信息需要编写axis2.xml文件,在axis2.xml文件中,顶级元素有六个,它们分别为:

Parameter

Transport Receiver

Transport Sender

Phase Order

Module References

Listeners(Observers)

1、 Parameter

Parameter参数是个name value pair,每一个在AxisConfiguration中都会被转换为properties。因此parameters级别配置的文档可以在运行时通过AxisConfiguration得到。正确的配置方法为

<parameter of the parameter”> parameter value </parameter>

2、 Transport Receiver

传输接收器,axis2接收消息可以采用不同的协议,需要对所采用的传输协议进行定义。定义格式:

<transportReceiver >

<parameter >

</transportReceiver>

以上设置传输协议为http ,端口是6060。也可以设置其他的传输协议。

3、 Transport Sender

运行时使用sender发送消息,例如axis2运行于tomcat下,axis使用TCP transport senders 来发送消息而不是HTTP,定义的transport sender的格式如:

<transportSender >

<parameter >

</transportSender>

4、 Phase Order

规范phases在执行链中的顺序,使用phase order元素来设置。

<phaseOrder type=”inflow”>

<phase >

</phaseOrder>

如果想在某个phase中添加一个handler,可以直接将handler元素添加到phaseOrder中。

Phaseorder的添加是在系统的预定义的phase 之后。

5、 Module References

如果在顶层元素添加 module的 ref ,则整个模块对全局有用。

<module ref=”addressing”/>

6、 Listeners(Observers)

在Axis2中,AxisConfiguration是可监测的,可以注册进观察者,在当一个AxisConfiguration发生改变时它们将会被自动通知。当前观察者的实现如下事件:

部署一个服务时

删除一个服务

激活一个服务或是将服务变成非激活

部署模块

删除模块

注册对于那业附加特性的服务注册观察者是很有用的,如RSS feed生成器将为用户提供服务信息。注册观察者格式:

<listener >

<parameter >

</listener>

其中的class代表 observer类的实现,并且需要说明的是类的实现要实现AxisObserver 接口,类要能在classpath中获得。

二、服务配置services.xml

services.xml文件放于META-INF目录下,它的简单结构如下表所示 :

 

<service of the service" scope="name of the scope" targetNamespace="target namespase for the service">

<description> The description of the service? </description>?

<transports>

transport>HTTP</transport>

</transports>

<schema schemaNamespace="schema namespace"/>

<messageReceivers>

<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"

class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>

</messageReceivers>

<parameter locked="xsd:false">org.apache.axis2.sample.echo.EchoImpl</parameter>

<operation mep="operation MEP">

<actionMapping>Mapping to action</actionMapping>

<module ref=" a module name "/>

<messageReceiver />

</operation>

</service>

其中涉及到的相关元素的说明:

name: 服务的名称,和aar文件名相同。

scope: 需要部署的服务的scope, scope可以是四种的一种:Application,SOAPSessioin,TransportSession,Request。

targetNamespace; 服务的目标名称空间,当产生wsdl文件时要用到这个元素。

description:可选的元素。只是进行描述。

transports: 可选元素。Transport服务将被暴露(exposed)。

parameter: 必须有的元素。规范工作的服务类和被MessageReceiver装载。

Operations:暴露的操作

<operation >

<module ref=” a module name”/>

<messageReceiver >

</operation>

此处必须有的属性是name,它代表了哪个操作名将暴露。操作也可以有module reference 和多个参数。

三、模块配置module.xml

module.xml文件也是存于归档文档的META-INF目录下,简单如下:

<module >

<inflow>

...

</inflow>

<outflow>

</outflow>

<Outfaultflow>

</Outfaultflow>

<INfaultflow>

</INfaultflow>

<operation mep=”MEP_URI_IN_OUT”>

<messageReceiver >

<parameter locked=”xsd:true”>10</parameter>

</operation>

在模块中有四种流flow:

Inflow;Outflow;INOutfaultflow;Outfaultflow

元素operations:如果一个模块在它被用到service中时想要向其中添加操作,则可以在module.xml文件中添加operation标记,这个operation的添加和services.xml文件中的方法一样。

Handler:handler元素包含有强制性的属性和可选的属性,定义handler的方法:

<handler >

<order phase=”userphase1”/>

</handler>

在handler中必须有的属性有:

name(handler的名称);

class(handler的实现类);

phase(handler所在的执行链中的阶段phase)

在handler中的可选属性:

phaseLast: 说明handler是这个phase的最后一个handler

phaseFirse: 说明handler是这个phase的头一个handler

before:handler应该在规定的handler之前调用

after: 在规定的handler之后调用

(转摘自: http://blog.163.com/qin_607/blog/static/116810982007515178648/)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics