`
baobaocao521
  • 浏览: 30526 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

axis2创建Module

阅读更多

创建Module

Axis2模块至少需要有两个类,这两个类分别实现了ModuleHandler接口

 

构造和部署 Module 分为以下几个步骤:

1.       创建 Module 的实现 --------------------Axis2模块在进行初始化、销毁等动作时会调用该类中相应的方法

2.       创建 Handlers -----------------------Axis2模块的业务处理类

3.       创建 module.xml------------------------该文件放在META-INF目录中,用于配置Axis2模块。

4.       修改 axis2.xml (如果你需要定制的语句)-----配置Axis2模块

5.       修改 services.xml Axis 部署的时候使用这些 Modules -------一个Axis2模块都需要使用<module>元素引用才能使用

6.        Axis2 中部署这些 Modules -----------Axis2模块压缩成.mar包,然后将.mar文件放在<Tomcat安装目录>\webapps\axis2\WEB-INF\modules目录中

 

现在来创建一个简单的 Logging Module ,这个 Module 包含一个 Hander ,它的作用就是纪录通过它的消息。 Axis 通过 *.mar 来部署 Modules ,下图就是这个部署包的结构

 


Step 1:
创建 LoggingModule Class

Logging Module Axis2 Module 的实现,它必须实现 org.apache.axis2.modules.Module 接口:

 

Step 2: 创建 LogHandler

Axis 的一个 Module 可以包含一个或者多个 Handler 。这些 Handler 将处理 Soap 头文件中的不同 phases 。一个 Handler 必须实现 org.apache.axis2.engine.Handler 接口,或者通过另一种简单方式,继承 org.apache.axis2.handlers.AbstractHandler

public class LogHandler extends AbstractHandler implements Handler {

private Log log = LogFactory.getLog(getClass());

    private QName name;

public QName getName() {

        return name;

    }

    public void invoke(MessageContext msgContext) throws AxisFault {

        log.info(msgContext.getEnvelope().toString());

    }

    public void setName(QName name) {

        this.name = name;

    }

}

 

Step 3: module.xml

这个文件包含了一个特定 Module 的部署配置。

<module name="logging" class="userguide.loggingmodule.LoggingModule ">

   <inflow>

        <handler name="InFlowLogHandler" class="userguide.loggingmodule.LogHandler">

        <order phase="loggingPhase" />

        </handler>

   </inflow>

   <outflow>

        <handler name="OutFlowLogHandler" class="userguide.loggingmodule.LogHandler">

        <order phase="loggingPhase"/>

        </handler>

   </outflow>

   <Outfaultflow>

        <handler name="FaultOutFlowLogHandler" class="userguide.loggingmodule.LogHandler">

        <order phase="loggingPhase"/>

        </handler>

   </Outfaultflow>

   <INfaultflow>

        <handler name="FaultInFlowLogHandler" class="userguide.loggingmodule.LogHandler">

        <order phase="loggingPhase"/>

        </handler>

   </INfaultflow>

</module>

 

a.       inflow - Represents the handler chain that will run when a message is coming in.

b.       outflow - Represents the handler chain that will run when the message is going out.

c.       Outfaultflow - Represents the handler chain that will run when there is a fault and the fault is going out

d.       INfaultflow - Represents the handler chain that will run when there is a fault and the fault is coming in

 

"<order phase="loggingPhase" />" describes the phase in which this handler runs.

 

还一种配置情况是 :

 

module.xml e中仅仅配置一些东西如下:

<module name="logging"  class="userguide.loggingmodule.LoggingModule "> 
</module>

 但是这样比较麻烦是在axis2.xml u中的配置相对复杂些,如下

 

<phaseOrder type="InFlow">

<phase name="logging">
             <handler name="InInterfaceLOGHandler" class="userguide.loggingmodule.LoggingModule ">
              <order phase="logging"/>
            </handler>
        </phase>

</phaseOrder>

.....在OutFlow,InFaultFlow,OutFaultFlow的标签中都要添加完成的配置信息

 

Step 4: 修改 axis2.xml

在前面用的 ”loggingPhase” 不是一个 pre-defined handler phase ,因此, module 的创建者需要将它介绍给 axis2.xml 于是 Axis 引擎就可以知道在不同的 ’flow’ 中如何放那些 handlers

这些增加是在 axis2.xml Phases 部分,在标志了 <!--      user can add his own phases to this area  --> 之后加入

<phaseOrder type="InFlow">

<phase name=" loggingPhase"/>  --------- 和module.xml中的  <order phase="loggingPhase"/>对应

</phaseOrder>

这样,这个 phase 将在引擎的任何消息流中调用

 

Step 5: 修改 service.xml

到目前为止, logging module 已经做好了,现在需要在服务中使用这个 module ,那么就要修改服务的 service.xml 。在该文件中加上了 "<module ref="logging"/>"

 

Step 6: 打包

将这个包打成 jar 或者 rar ,然后改后缀名为 mar

 

Step 7: Axis2 中部署这个 Module

首先要在 "webapps/axis2/WEB-INF" 目录下创建一个 modules 文件夹,然后将 *.mar 文件放在这个文件夹中,然后重启 Axis 并运行服务进行测试

分享到:
评论

相关推荐

    axis2的API,axis2 API,axis2帮助文档

    用户可以通过官方文档学习如何配置Axis2、创建服务、调用服务以及使用各种特性。此外,社区论坛和邮件列表也是获取问题解答和支持的重要资源。 ### Axis2与其他技术的集成 - **WS-Security**: 支持WS-Security标准...

    Axis2-1.6.2

    开发者可以利用Axis2创建、发布和调用Web服务,同时享受到其高效的性能和灵活的扩展性。 关于标签,"Axis2"是本文的核心,它是Apache软件基金会的项目,用于构建Web服务和SOA(Service-Oriented Architecture)解决...

    axis2;WebService

    【Axis2 WebService 开发指南】是关于使用Apache Axis2框架创建和操作Web服务的教程。Axis2是Axis1的升级版,提供了更多的功能和改进的性能。在开始之前,你需要下载并安装必要的开发工具,包括Axis2的jar包和...

    Axis2学习文档

    2. **Module**: 模块是Axis2中实现特定功能的可插入组件,例如安全、事务处理或消息编码。它们可以被附加到服务上,提供额外的服务行为。 3. **Transport**: 传输层负责实际的消息发送和接收,Axis2内置了HTTP和...

    axis2相关jar包

    Axis2是Apache软件基金会...总之,这个“相关jar包”是开发和运行基于Axis2的Web服务的基础,涵盖了从服务创建、部署到运行所需的全部组件。正确理解和使用这些库,可以有效地构建高效、安全的企业级Web服务解决方案。

    axis2-1.6.4源码

    Axis2是Apache软件基金会开发...通过深入学习和分析 "axis2-1.6.4源码",开发者不仅可以掌握 Axis2 的工作原理,还能提升在Web服务开发、分布式计算、企业集成等领域的技能,同时为创建自己的Web服务框架奠定坚实基础。

    axis2-1.7.9

    4. **易于扩展**:通过编写服务档案(Service Archive, SAR)和模块档案(Module Archive, MAR),开发者可以轻松扩展Axis2的功能。 5. **RESTful支持**:除了传统的SOAP接口,Axis2也支持创建和消费RESTful服务,...

    axis2文档.

    1. **架构与设计**:Axis2采用了模块化设计,核心组件包括Message Receiver、Transport Sender/Receiver、Message Formatter/Builder、Module等。这种设计使得Axis2具有良好的灵活性和可扩展性。 2. **服务部署**:...

    最新axis2实例.rar

    通过这个实例,你可以学习到如何配置和管理Axis2服务器,创建和部署服务,以及构建和使用Axis2客户端。此外,还可以探索不同的模块,提升Web服务的安全性和效率。实践中,结合官方文档和其他资源,将有助于你更好地...

    axis2的教程 axis2入门

    8. **编写Axis2模块(Module)**: 模块允许自定义扩展,增强服务的功能。 9. **soapmonitor模块监控**: 可以监视SOAP请求和响应,便于调试和性能优化。 通过本教程的学习,学员将全面掌握Axis2的关键技术和应用场景...

    axis2相关文件

    5. **模块(Module)**:Axis2支持模块化架构,允许开发者扩展其功能。模块可以添加自定义处理逻辑,如安全、事务管理等。在服务部署或调用过程中,模块可以按需加载。 6. **传输协议**:Axis2支持多种传输协议,...

    org.apache.axis2.eclipse.service.plugin_1.7.8

    Apache Axis2 是一个著名的Web服务框架,用于创建和部署SOAP(简单对象访问协议)和RESTful服务。在Java世界中,Axis2提供了高效且灵活的处理机制,支持多种协议和服务模型。Eclipse 是一个广泛使用的集成开发环境...

    axis2经典讲解

    编写Axis2模块(Module) - **模块化设计理念**:允许开发者自定义扩展功能。 - **步骤说明**: - 创建自定义模块类,继承AbstractPhaseInterceptor。 - 实现interceptSend()和interceptReceive()方法。 - 配置...

    axis2需要的1.6.2jar

    - **模块(Module)**:Axis2中的可插拔组件,提供额外的功能,如安全、事务管理等。 - **服务(Service)**:Web服务的实现,由一个或多个操作组成。 - **操作(Operation)**:服务提供的具体功能,对应于HTTP请求...

    Axis2官方文档

    Axis2 的核心架构基于模块(Module)和服务(Service)的概念。模块是可插入的组件,提供了如安全、传输、消息格式化等功能。服务则是Web服务的实际实现,可以包含多个操作。此外,Axis2 还引入了服务描述(Service ...

    axis2 jar包

    4. **Module**:Axis2支持模块化架构,模块可以提供额外的功能,如安全、事务管理等,可以按需加载。 5. **Message Context**:存储消息的元数据,包括SOAP头、SOAP体、消息上下文等信息。 6. **Deployer**:负责...

    Axis2学习教程-全面学习AXIS

    Axis2是Apache软件基金会开发的Web服务框架,它为创建和部署Web服务提供了一种高效且灵活的方式。在本教程中,你将深入理解Axis2的核心特性,以及如何在不同场景下运用它。 首先,了解WebService的基本概念至关重要...

    axis2所有jar包

    4. **Axis2组件**:Axis2由多个模块组成,如Transport接收器和发送器(负责消息的输入输出)、Message Receiver(处理传入消息)、Service Archiver(打包和部署服务)、Module(提供额外功能如安全、事务等)等。...

    WebService大讲堂之Axis2

    - **编写Axis2模块(Module):** - 用户可以扩展Axis2的功能,通过编写自定义模块实现特定的需求。 - **使用soapmonitor模块监视SOAP请求与响应消息:** - Axis2提供了一个名为 `soapmonitor` 的模块,用于监控...

    axis2_jar包(1)

    - **Module**:Axis2支持可插入模块,可以扩展其功能,例如安全性、事务管理等。 - **Service Archive (AAR)**:服务存档文件,包含了服务接口、实现、配置以及依赖的库文件。 3. **jar文件的角色**: - 在"新建...

Global site tag (gtag.js) - Google Analytics