axis2.xml位于AXIS2_HOME/conf目录下面,在此文件中可以看到位于根元素下面有六个顶层元素:
- Parameter
- Transport Receiver
- Transport Sender
- Module Reference
- Listener(Observers)
- Message Receiver
- Message Formatters
- Message Builder
Parameter
在Axis2中,一个参数就是一个键值对。axis2.xml中的顶层parameter都会被传送到AxisConfiguration类的属性中。因此,axis2.xml中顶层parameters都可以通过AxisConfiguration访问。parameter定义的格式为:
[html] view plain copy
- <parameter name="name of the parameter" >parameter value </parameter>
Transport Receiver
根据Axis2运行的底层传输协议,你需要不同的接受器(transport receiver).配置方式如下:
[html] view plain copy
- <transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port" >6060</parameter>
- </transportReceiver>
<transportReceiver/>元素的"name"属性表示传输接收者(Transport Receiver)的类型。可以是HTTP,TCP,SMTP,CommonsHTTP等。当系统启动或者在客户端设置了传输方式(transport)后,可以使用名称(name属性)来加载合适的传输方式。"class"属性指定实现了transport必需的接口的java类。任何传输方式都可以有一个或多个参数,并且对应的传输接收者(Transport Receiver)可以访问这些参数。
Transport Sender
类似传输接收者,同样可以注册传输发送者,并且在运行时可以使用这些发送者来发送消息。例如,假设Axis2运行在tomcat下面,那么Axis2可以使用TCP传输发送者来发送消息,而不是HTTP。配置方式如下:
<transportSender name="http"
class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
<parameter name="PROTOCOL">HTTP/1.1</parameter>
<parameter name="Transfer-Encoding">chunked</parameter>
</transportSender>
name是协议的别名,class是实现类,其中可以指定一些其它的参数,在运行时,这些参数对实现类是可见的。
Module REferences
如果你想激活一个模块,系统级别,可以在axis2.xml中添加一个顶层的模块元素。类似这样:
[html] view plain copy
- <module ref="addressing"/>
Listener(Observers)
Axis2中,AxisConfiguration是可见的,因此你可以注册观察者。当AxisConfiguration发生变化时,会自动通知这些观察者。在当前的实现中,下列事件发生时会通知观察者。
- Deploying a Service
- Removing a service
- Activate/Inactivate Service
- Module deploy
- Module remove
注册观察者有时很有用,例如Rss feed generation,他可以给订阅者提供服务。正确注册观察者的方式如下:
[html] view plain copy
- <listener class="org.apache.axis2.ObserverIMPL">
- <parameter name="RSS_URL" >http://127.0.0.1/rss</parameter>
- </listener>
class: 观察者的实现类,需要实现AxisObserver接口,并且类要位于classpath中。
Message Receiver:
axis2中消息接收器元素用于指定全局的message receivers,它会配置MEP(Message Exchange Pattern)和具体实现类,当部署一个service时,它会使用services.xml中的MEP和全局的message receivers。
Message Formatters:
把一个类结构序列化为一个特殊的格式,例如 输入类型为application/xml,要序列化为POX message,那message formatter如下:
<messageFormatters>
<messageFormatter contentType="application/xml"
class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
</messageFormatters>
Message Builder
它的作用把一个非soap消息转换为soap消息,例子:
<messageBuilders>
<messageBuilder contentType="application/x-www-form-urlencoded"
class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
</messageBuilders>
contentType表示messageBuilder可以处理的消息类型。
最后欢迎大家访问我的个人网站:1024s