Axis2 三种配置文件

来源:互联网 发布:url域名 网站 ip的区别 编辑:程序博客网 时间:2024/04/30 11:18
 

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 name=”name of the parameter”> parameter value </parameter>

2、Transport Receiver

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

<transportReceiver name=”http” class=”org.apache.axis2.transport.http.SimpleHTTPServer”>

<parameter name=”port”>6060</parameter>

</transportReceiver>

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

3、Transport Sender

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

<transportSender name=”http” class=”org.apache.axis2.transport.http.CommonsHTTPTransportSender”>

<parameter name=”PROTOCOL”locked=”xsd:false”>HTTP/1.0</parameter>

</transportSender>

4、Phase Order

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

<phaseOrder type=”inflow”>

<phase name=”TransportIn”/>

</phaseOrder>

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

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

5、Module References

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

<module ref=”addressing”/>

6、Listeners(Observers)

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

部署一个服务时

删除一个服务

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

部署模块

删除模块

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

<listener class=”org.apache.axis2.ObserverIMPL”>

<parameter name=”RSS_URL”>http://127.0.0.1/rss</parameter>

</listener>

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

二、服务配置services.xml

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

<service name="name 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 name="ServiceClass" locked="xsd:false">org.apache.axis2.sample.echo.EchoImpl</parameter>
<operation name="echoString" mep="operation MEP"> 
<actionMapping>Mapping to action</actionMapping>
<module ref=" a module name "/>
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</operation>
</service>

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

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

scope需要部署的服务的scope, scope可以是四种的一种:ApplicationSOAPSessioinTransportSessionRequest

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

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

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

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

Operations:暴露的操作

<operation name=”echoString”>

<module ref=” a module name”/>

<messageReceiver class=”org.apache.axis2.receivers.RawXMLINOutMessageReceiver”/>

</operation>

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

三、模块配置module.xml

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

<module class=”org.apache.module.ModuleImpl”>

<inflow>

...

</inflow>

<outflow>

</outflow>

<Outfaultflow>

</Outfaultflow>

<INfaultflow>

</INfaultflow>

<operation name=”createSeq” mep=”MEP_URI_IN_OUT”>

<messageReceiver class=”org.apache.axis2.receivers.RawXMLINOutMessageReceiver”/>

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

</operation>

在模块中有四种流flow

InflowOutflowINOutfaultflowOutfaultflow

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

Handlerhandler元素包含有强制性的属性和可选的属性,定义handler的方法:
<handler name=”handler1” class=”handlerClass”>

<order phase=”userphase1”/>

</handler>

handler中必须有的属性有:

namehandler的名称);

classhandler的实现类);

phasehandler所在的执行链中的阶段phase

handler中的可选属性:

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

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

beforehandler应该在规定的handler之前调用

after在规定的handler之后调用

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 name=”name of the parameter”> parameter value </parameter>

2、Transport Receiver

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

<transportReceiver name=”http” class=”org.apache.axis2.transport.http.SimpleHTTPServer”>

<parameter name=”port”>6060</parameter>

</transportReceiver>

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

3、Transport Sender

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

<transportSender name=”http” class=”org.apache.axis2.transport.http.CommonsHTTPTransportSender”>

<parameter name=”PROTOCOL”locked=”xsd:false”>HTTP/1.0</parameter>

</transportSender>

4、Phase Order

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

<phaseOrder type=”inflow”>

<phase name=”TransportIn”/>

</phaseOrder>

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

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

5、Module References

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

<module ref=”addressing”/>

6、Listeners(Observers)

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

部署一个服务时

删除一个服务

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

部署模块

删除模块

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

<listener class=”org.apache.axis2.ObserverIMPL”>

<parameter name=”RSS_URL”>http://127.0.0.1/rss</parameter>

</listener>

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

二、服务配置services.xml

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

<service name="name 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 name="ServiceClass" locked="xsd:false">org.apache.axis2.sample.echo.EchoImpl</parameter>
<operation name="echoString" mep="operation MEP"> 
<actionMapping>Mapping to action</actionMapping>
<module ref=" a module name "/>
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</operation>
</service>

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

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

scope需要部署的服务的scope, scope可以是四种的一种:ApplicationSOAPSessioinTransportSessionRequest

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

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

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

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

Operations:暴露的操作

<operation name=”echoString”>

<module ref=” a module name”/>

<messageReceiver class=”org.apache.axis2.receivers.RawXMLINOutMessageReceiver”/>

</operation>

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

三、模块配置module.xml

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

<module class=”org.apache.module.ModuleImpl”>

<inflow>

...

</inflow>

<outflow>

</outflow>

<Outfaultflow>

</Outfaultflow>

<INfaultflow>

</INfaultflow>

<operation name=”createSeq” mep=”MEP_URI_IN_OUT”>

<messageReceiver class=”org.apache.axis2.receivers.RawXMLINOutMessageReceiver”/>

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

</operation>

在模块中有四种流flow

InflowOutflowINOutfaultflowOutfaultflow

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

Handlerhandler元素包含有强制性的属性和可选的属性,定义handler的方法:
<handler name=”handler1” class=”handlerClass”>

<order phase=”userphase1”/>

</handler>

handler中必须有的属性有:

namehandler的名称);

classhandler的实现类);

phasehandler所在的执行链中的阶段phase

handler中的可选属性:

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

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

beforehandler应该在规定的handler之前调用

after在规定的handler之后调用

原创粉丝点击