今天做了一个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文件夹下即可。
好了以上就是开发过程
有什么问题给我留言
分享到:
相关推荐
标题中的“Axis2三种配置文件”指的是在使用Apache Axis2,一个流行的开源Web服务引擎时,需要理解的三种核心配置文件。这些配置文件是Axis2框架的重要组成部分,它们定义了服务的行为、部署方式以及与其他组件的...
用户可以通过官方文档学习如何配置Axis2、创建服务、调用服务以及使用各种特性。此外,社区论坛和邮件列表也是获取问题解答和支持的重要资源。 ### Axis2与其他技术的集成 - **WS-Security**: 支持WS-Security标准...
- **模块配置**:学习如何使用和配置Axis2模块,以实现如安全认证、消息转换等功能。 - **消息处理**:了解Axis2如何处理SOAP消息,以及如何自定义消息接收器以适应特定需求。 - **传输机制**:探索Axis2的传输层...
- **Module**: Axis2中的模块是可插入的服务处理单元,它们可以添加额外的功能,如安全、事务管理等。 - **Service Archiver (AAR)**: 服务的打包格式,包含服务的类、配置文件和其他资源。 - **Transport**: Axis2...
Axis2是Apache软件基金会...`axis2-1.6.0-docs.zip`则包含了轴2的官方文档,详细解释了各个组件、配置选项以及使用方法,是学习和解决问题的重要参考资料。通过这些资源,开发者可以全面了解并熟练掌握Axis2的使用。
3. **服务配置**:通过AXIS2.XML配置文件可以定制服务行为,如绑定、模块加载、拦截器等。 4. **测试与调试**:使用 Axis2 提供的测试工具和日志记录功能进行服务的验证和问题排查。 5. **性能优化**:根据实际需求...
2. **配置Axis2**: 修改`axis2.xml`配置文件,设置服务器端口、日志级别等。 3. **创建服务**: 使用Axis2提供的工具或编程方式创建服务类,定义服务接口和实现。 4. **部署服务**: 将服务存档(AAR文件)放入Axis2的...
4. **易于扩展**:通过编写服务档案(Service Archive, SAR)和模块档案(Module Archive, MAR),开发者可以轻松扩展Axis2的功能。 5. **RESTful支持**:除了传统的SOAP接口,Axis2也支持创建和消费RESTful服务,...
- `conf`目录存储Axis2的配置文件。 - `lib`包含运行所需的所有依赖库。 - `repository`存储已发布的Axis服务和相关文件。 - `sample`包含示例代码。 - `webapp`包含Web应用程序文件和JSP页面。 4. **部署Axis...
2. **自定义模块开发**:用户可以根据需求开发自己的模块,增强或定制Axis2的功能。 **八、工具支持** Axis2 提供了一系列的工具,如 wsdl2java 用于从WSDL生成Java代码,java2wsdl 反向生成WSDL,以及 Axis2管理...
5. **模块(Module)**:Axis2支持模块化架构,允许开发者扩展其功能。模块可以添加自定义处理逻辑,如安全、事务管理等。在服务部署或调用过程中,模块可以按需加载。 6. **传输协议**:Axis2支持多种传输协议,...
- **模块(Module)**:Axis2中的可插拔组件,提供额外的功能,如安全、事务管理等。 - **服务(Service)**:Web服务的实现,由一个或多个操作组成。 - **操作(Operation)**:服务提供的具体功能,对应于HTTP请求...
Axis2作为WebService引擎,能够帮助开发者发布Java类的方法为Web服务,允许不同客户端进行调用,从而实现技术的集成。 课程内容包括了Axis2的基础知识讲解,如以多种方式编写和发布WebService、JAX-RPC、JAX-WS的...
7. **Spring Web Services**:Spring还提供了自己的Web服务框架,它可以与Axis2结合,提供更丰富的Web服务功能,比如WS-Security等。 8. **测试与调试**:Spring的测试框架可以与Axis2服务无缝集成,方便进行单元...
1. **Axis2服务创建**:它允许用户直接在Eclipse环境中创建新的Axis2服务,通过向导指导用户完成服务定义、接口实现以及部署描述符的配置。 2. **代码生成**:当用户定义了服务接口和实现后,插件可以自动生成相应...
3. **Service Archiver**:将服务相关的所有资源(如WSDL、Java类、配置文件等)打包成一个aar(Axis2 Archive)文件,方便部署。 4. **Module**:Axis2支持模块化架构,模块可以提供额外的功能,如安全、事务管理...