学习Axis2部署WebService(三)--------之Axis2配置文件
AXIS 2009-03-08 23:30:21 阅读21 评论0 字号:大中小 订阅
来源:http://hi.baidu.com/zbzb/blog/item/38ef4cfb8bf44161034f569b.html
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
如果在顶层元素添加 module的 ref ,则整个模块对全局有用。
<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可以是四种的一种:Application,SOAPSessioin,TransportSession,Request。
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:
Inflow;Outflow;INOutfaultflow;Outfaultflow
元素operations:如果一个模块在它被用到service中时想要向其中添加操作,则可以在module.xml文件中添加operation标记,这个operation的添加和services.xml文件中的方法一样。
Handler:handler元素包含有强制性的属性和可选的属性,定义handler的方法:
<handler name=”handler1” class=”handlerClass”>
<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之后调用
分享到:
相关推荐
### 部署WebService(eclipse-axis2)的关键步骤与实践 #### 一、概述 部署WebService涉及使用Eclipse集成开发环境结合Axis2框架来搭建Web服务。本文将详细介绍如何使用Eclipse 3.5.0 和 Axis2-1.3 版本进行...
- **Axis2**作为Apache组织下的一个开源项目,是当前较为流行的WebService引擎之一。 - **特性**:支持SOAP 1.1和SOAP 1.2标准;支持RESTful风格的WebService;集成了Spring框架,使得开发者能够更容易地管理和配置...
webService 生成插件axis2- idea-plugin-1.7.8
- **配置内容**:在项目的`WEB-INF`目录下编辑`web.xml`文件,添加Axis2的配置信息。 - **关键配置**: ```xml <!-- Axis2 config start --> <servlet-name>AxisServlet</servlet-name> <servlet-class>org....
这需要将服务类和相关的配置文件打包成一个Axis2模块(.aar文件),然后部署到Axis2服务器上。 5. **测试和调用**:一旦服务被部署,就可以通过Spring的`WebServiceTemplate`或`WebServiceProxyFactoryBean`来测试...
eclipse+axis2学习webservice实例,亲测!
在使用过程中,开发者应关注一些关键的Axis2配置文件,如services.xml定义服务行为,axis2.xml控制整个服务容器的行为。这些配置文件的正确设置对服务的运行至关重要。 总的来说,WebService Axis2 Eclipse Codegen...
1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web服务接口。这个类通常会遵循SOAP协议,定义服务操作。例如,你可以创建一个名为`HelloWorldService`的类,包含一个`sayHello`...
标题中的"axis2-1.8.0apache-cxf-3.4.4.rar"是一个压缩包文件,其中包含了两个重要的开源项目:Apache Axis2版本1.8.0和Apache CXF版本3.4.4。这两个项目都是用于构建和部署Web服务的重要工具,主要应用于Java开发...
axis2 webservice 服务端jar包: -->axis2-kernel-1.6.1.jar -->axis2-spring-1.6.1.jar -->axis2-transport-http-1.6.1.jar -->XmlSchema-1.4.7.jar -->wsdl4j-1.6.2.jar -->axiom-api-1.2.12.jar -->axiom...
3. Axis2 War 文件部署: 需要将下载下来的 axis2-1.5.3-war.zip 文件中的 axis2.war 文件放在 Tomcat 目录下,启动 Tomcat 后,将 war 文件转换成一个可以跑起来的 axis2 项目。 4. 简单 WebService 示例: 可以...
资源包含了:axis2-1.7.4-bin.zip、axis2-1.7.4-war.zip、axis2-eclipse-...备注:资源超过了70M 分成了3部分 见axis2方式开发webservice(一)和 axis2方式开发webservice(二)、 axis2方式开发webservice(三)
4. **服务部署文件(.aar)**:Axis2的服务归档文件,包含了服务的Java类、资源配置和WSDL。 5. **客户端代码**:展示了如何使用Axis2客户端库来调用服务。 6. **配置文件**:如axis2.xml,用于配置服务的行为和属性...
- `conf`目录存储Axis2的配置文件。 - `lib`包含运行所需的所有依赖库。 - `repository`存储已发布的Axis服务和相关文件。 - `sample`包含示例代码。 - `webapp`包含Web应用程序文件和JSP页面。 4. **部署Axis...
axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例
WebService——AXIS详解 在IT领域,WebService是一种基于标准的、平台无关的、可以在不同系统之间交换数据的方式。...学习和掌握AXIS不仅可以提升开发效率,也是现代企业级应用开发的重要技能之一。
通过学习这些材料,你可以了解如何使用Axis2创建、发布和调用Web Service,以及如何配置和优化Axis2服务器。无论是对于初学者还是有一定经验的开发者,这个资料集都是一份宝贵的参考资料。在实践中,你将学会如何...
描述中提到的“简单例子:axis2整合spring发布webservice”,意味着我们将学习如何将这两个框架结合,以便通过Spring来管理和控制Web服务的生命周期,同时利用Axis2的Web服务处理能力。此外,“以及session的管理”...