`

自己配置Axis2 Module的方法

阅读更多

今天做了一个Axis2 Module的例子(官网介绍),感觉很简单,但也很实用这里和大家分享一下

 

步骤:

1.首先要写一个Module的实现类

这里我写了一个和官网上的不太一样,但也差不多

package userguide.loggingmodule;

import org.apache.axis2.AxisFault;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.description.AxisDescription;
import org.apache.axis2.description.AxisModule;
import org.apache.axis2.modules.Module;
import org.apache.neethi.Assertion;

/**
 * 
 * @author cnchenhl
 * Jun 15, 2011
 */
public class LoggingModule implements Module {
    /**
     * Initialize the module
     */
    public void init(ConfigurationContext configContext, AxisModule module) throws AxisFault {
    }

    /**
     * End of module processing
     */
    public void shutdown(ConfigurationContext configurationContext) throws AxisFault {
    }

    public void engageNotify(AxisDescription axisDescription) throws AxisFault {
    }

    public boolean canSupportAssertion(Assertion assertion) {
        return false;
    }

    @Override
    public void applyPolicy(org.apache.neethi.Policy arg0, AxisDescription arg1) throws AxisFault {

    }
}

 2.然后就是也Hander,我们也实现它

package userguide.loggingmodule;

import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.engine.Handler;
import org.apache.axis2.handlers.AbstractHandler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * 
 * @author cnchenhl
 * Jun 15, 2011
 */
public class LogHandler extends AbstractHandler implements Handler {

    private static final Log log = LogFactory.getLog(LogHandler.class);
    private String name;

    public String getName() {
        return name;
    }

    public InvocationResponse invoke(MessageContext msgContext) throws AxisFault {
        log.info(msgContext.getEnvelope().toString());
        return InvocationResponse.CONTINUE;
    }

    public void revoke(MessageContext msgContext) {
        log.info(msgContext.getEnvelope().toString());
    }

    public void setName(String name) {
        this.name = name;
    }

}

 3.下面做module.xml

<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>

 4.修改axis2.xml

<phaseOrder type="InFlow">
		<phase name="loggingPhase"/>
<phaseOrder type="OutFlow">
		<phase name="loggingPhase"/>
........

 5.修改service.xml

加上<module ref="logging"/>

6.打包

基本的将上面的类编译成class,然后将module.xml放到META-INF下面 打包成jar,然后改后缀名为mar

7.发布

嘿嘿这个发布很简单,放到module文件夹下即可。

好了以上就是开发过程

有什么问题给我留言

 

0
0
分享到:
评论

相关推荐

    Axis2三种配置文件

    标题中的“Axis2三种配置文件”指的是在使用Apache Axis2,一个流行的开源Web服务引擎时,需要理解的三种核心配置文件。这些配置文件是Axis2框架的重要组成部分,它们定义了服务的行为、部署方式以及与其他组件的...

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

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

    Axis2学习文档

    - **模块配置**:学习如何使用和配置Axis2模块,以实现如安全认证、消息转换等功能。 - **消息处理**:了解Axis2如何处理SOAP消息,以及如何自定义消息接收器以适应特定需求。 - **传输机制**:探索Axis2的传输层...

    Axis2-1.6.2

    - **Module**: Axis2中的模块是可插入的服务处理单元,它们可以添加额外的功能,如安全、事务管理等。 - **Service Archiver (AAR)**: 服务的打包格式,包含服务的类、配置文件和其他资源。 - **Transport**: Axis2...

    axis2文档.

    Axis2是Apache软件基金会...`axis2-1.6.0-docs.zip`则包含了轴2的官方文档,详细解释了各个组件、配置选项以及使用方法,是学习和解决问题的重要参考资料。通过这些资源,开发者可以全面了解并熟练掌握Axis2的使用。

    axis2相关jar包

    3. **服务配置**:通过AXIS2.XML配置文件可以定制服务行为,如绑定、模块加载、拦截器等。 4. **测试与调试**:使用 Axis2 提供的测试工具和日志记录功能进行服务的验证和问题排查。 5. **性能优化**:根据实际需求...

    最新axis2实例.rar

    2. **配置Axis2**: 修改`axis2.xml`配置文件,设置服务器端口、日志级别等。 3. **创建服务**: 使用Axis2提供的工具或编程方式创建服务类,定义服务接口和实现。 4. **部署服务**: 将服务存档(AAR文件)放入Axis2的...

    axis2-1.7.9

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

    axis2;WebService

    - `conf`目录存储Axis2的配置文件。 - `lib`包含运行所需的所有依赖库。 - `repository`存储已发布的Axis服务和相关文件。 - `sample`包含示例代码。 - `webapp`包含Web应用程序文件和JSP页面。 4. **部署Axis...

    Axis2官方文档

    2. **自定义模块开发**:用户可以根据需求开发自己的模块,增强或定制Axis2的功能。 **八、工具支持** Axis2 提供了一系列的工具,如 wsdl2java 用于从WSDL生成Java代码,java2wsdl 反向生成WSDL,以及 Axis2管理...

    axis2相关文件

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

    axis2需要的1.6.2jar

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

    Axis2学习教程-全面学习AXIS

    Axis2作为WebService引擎,能够帮助开发者发布Java类的方法为Web服务,允许不同客户端进行调用,从而实现技术的集成。 课程内容包括了Axis2的基础知识讲解,如以多种方式编写和发布WebService、JAX-RPC、JAX-WS的...

    axis2+spring整合实例

    7. **Spring Web Services**:Spring还提供了自己的Web服务框架,它可以与Axis2结合,提供更丰富的Web服务功能,比如WS-Security等。 8. **测试与调试**:Spring的测试框架可以与Axis2服务无缝集成,方便进行单元...

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

    1. **Axis2服务创建**:它允许用户直接在Eclipse环境中创建新的Axis2服务,通过向导指导用户完成服务定义、接口实现以及部署描述符的配置。 2. **代码生成**:当用户定义了服务接口和实现后,插件可以自动生成相应...

    axis2 jar包

    3. **Service Archiver**:将服务相关的所有资源(如WSDL、Java类、配置文件等)打包成一个aar(Axis2 Archive)文件,方便部署。 4. **Module**:Axis2支持模块化架构,模块可以提供额外的功能,如安全、事务管理...

Global site tag (gtag.js) - Google Analytics