`

学习Axis2部署WebService(三)--------之Axis2配置文件

阅读更多
学习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)的关键步骤与实践 #### 一、概述 部署WebService涉及使用Eclipse集成开发环境结合Axis2框架来搭建Web服务。本文将详细介绍如何使用Eclipse 3.5.0 和 Axis2-1.3 版本进行...

    Axis2(WebService)经典教程

    - **Axis2**作为Apache组织下的一个开源项目,是当前较为流行的WebService引擎之一。 - **特性**:支持SOAP 1.1和SOAP 1.2标准;支持RESTful风格的WebService;集成了Spring框架,使得开发者能够更容易地管理和配置...

    webService 生成插件axis2-idea-plugin-1.7.8

    webService 生成插件axis2- idea-plugin-1.7.8

    axis2实现webservice

    - **配置内容**:在项目的`WEB-INF`目录下编辑`web.xml`文件,添加Axis2的配置信息。 - **关键配置**: ```xml &lt;!-- Axis2 config start --&gt; &lt;servlet-name&gt;AxisServlet&lt;/servlet-name&gt; &lt;servlet-class&gt;org....

    Spring集成axis2实现webservice所用到的包

    这需要将服务类和相关的配置文件打包成一个Axis2模块(.aar文件),然后部署到Axis2服务器上。 5. **测试和调用**:一旦服务被部署,就可以通过Spring的`WebServiceTemplate`或`WebServiceProxyFactoryBean`来测试...

    eclipse+axis2=webservice实例-亲测

    eclipse+axis2学习webservice实例,亲测!

    WebService axis2-eclipse-codegen-plugin

    在使用过程中,开发者应关注一些关键的Axis2配置文件,如services.xml定义服务行为,axis2.xml控制整个服务容器的行为。这些配置文件的正确设置对服务的运行至关重要。 总的来说,WebService Axis2 Eclipse Codegen...

    axis2发布webservice和调用axis2服务接口

    1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web服务接口。这个类通常会遵循SOAP协议,定义服务操作。例如,你可以创建一个名为`HelloWorldService`的类,包含一个`sayHello`...

    axis2-1.8.0apache-cxf-3.4.4.rar

    标题中的"axis2-1.8.0apache-cxf-3.4.4.rar"是一个压缩包文件,其中包含了两个重要的开源项目:Apache Axis2版本1.8.0和Apache CXF版本3.4.4。这两个项目都是用于构建和部署Web服务的重要工具,主要应用于Java开发...

    完整的axis2 jar包包含实例.zip

    axis2 webservice 服务端jar包: --&gt;axis2-kernel-1.6.1.jar --&gt;axis2-spring-1.6.1.jar --&gt;axis2-transport-http-1.6.1.jar --&gt;XmlSchema-1.4.7.jar --&gt;wsdl4j-1.6.2.jar --&gt;axiom-api-1.2.12.jar --&gt;axiom...

    axis2-WebService-开发指南.docx

    3. Axis2 War 文件部署: 需要将下载下来的 axis2-1.5.3-war.zip 文件中的 axis2.war 文件放在 Tomcat 目录下,启动 Tomcat 后,将 war 文件转换成一个可以跑起来的 axis2 项目。 4. 简单 WebService 示例: 可以...

    axis2开发webservice(二)

    资源包含了:axis2-1.7.4-bin.zip、axis2-1.7.4-war.zip、axis2-eclipse-...备注:资源超过了70M 分成了3部分 见axis2方式开发webservice(一)和 axis2方式开发webservice(二)、 axis2方式开发webservice(三)

    axis2webservice接口例子

    4. **服务部署文件(.aar)**:Axis2的服务归档文件,包含了服务的Java类、资源配置和WSDL。 5. **客户端代码**:展示了如何使用Axis2客户端库来调用服务。 6. **配置文件**:如axis2.xml,用于配置服务的行为和属性...

    axis2;WebService

    - `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 示例axis2例子 webservice axis2 示例

    WebService------AXIS

    WebService——AXIS详解 在IT领域,WebService是一种基于标准的、平台无关的、可以在不同系统之间交换数据的方式。...学习和掌握AXIS不仅可以提升开发效率,也是现代企业级应用开发的重要技能之一。

    WebService-Axis2 详细讲解

    通过学习这些材料,你可以了解如何使用Axis2创建、发布和调用Web Service,以及如何配置和优化Axis2服务器。无论是对于初学者还是有一定经验的开发者,这个资料集都是一份宝贵的参考资料。在实践中,你将学会如何...

    axis2+spring webservice

    描述中提到的“简单例子:axis2整合spring发布webservice”,意味着我们将学习如何将这两个框架结合,以便通过Spring来管理和控制Web服务的生命周期,同时利用Axis2的Web服务处理能力。此外,“以及session的管理”...

Global site tag (gtag.js) - Google Analytics