快速业务通道

Axis2中使用模块 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

Axis2中使用模块

时间:2011-06-21 zhangjunhd

1.模块

Axis2为模块提供一个延伸的支持。我们现在自定义一个模块并将其部署到我 们先前创建的MyService。为一个给定的Web Service部署一个自定义的模块,其 步骤如下:

1)建立Module Implementation。

2)创建Handlers。

3)修改"axis2.xml"。

4)修改"services.xml",使你的模块在部署期生效。

5)将其打包为一个".mar"(Module Archive)。

6)在Axis2上部署这个模块。

2.为MyService增加一个日志模块

现在我们在我们的例子程序中增加一个日志模块。这个模块包含一个handle ,用来记录所有传递给它的信息。Axis2使用". mar" (Module Archive)来部署 模块。下图给出了需要被打包为".mar"文档的文件结构。

步骤一:日志模块类

日志模块是Axis2模块的实现类。Axis2模块应该实 现"org.apache.axis2.modules.Module"接口中的如下方法。

public void init(ConfigurationContext configContext, AxisModule module) throws AxisFault;//Initialize the module public void shutdown(AxisConfiguration axisSystem) throws AxisFault;//End of module processing public void engageNotify(AxisDescription axisDescription) throws AxisFault;

这些方法可以用来控制模块的初始化和终止。通过参数AxisConfiguration, 可提供给用户完整的配置层次。模块设计者可以使用它来很好的控制模块的所有 可能的操作。就这个简单的日志服务的例子而言,我们可以空实现这些类。

LoggingModule.java

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; public class LoggingModule implements Module {    // initialize the module    public void init(ConfigurationContext configContext, AxisModule module) throws AxisFault {}    public void engageNotify(AxisDescription axisDescription) throws AxisFault {}    // shutdown the module    public void shutdown(ConfigurationContext configurationContext) throws AxisFault {}    public String[] getPolicyNamespaces() {       return null;    } }

Axis2中使用模块(2)

时间:2011-06-21 zhangjunhd

步骤二:LogHandler

Axis2中的模块可以包含一个或多个handlers用来在不同的阶段执行不同的 SOAP头处理。创建一个handler,应该实现org.apache.axis2.engine.Handler。 但是为简单起见,org.apache.axis2.handlers.AbstractHandler提供了一个对 Handler接口的抽象的实现。针对本例日志模块,我们将创建一个handler包含以 下方法:

1)"public void invoke(MessageContext ctx);"//当控制权转到handler时 ,由Axis2引擎调用。

2)"public void revoke(MessageContext ctx);"//当handlers被Axis2引擎 撤销时调用。

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; import javax.xml.namespace.QName; @SuppressWarnings("serial") public class LogHandler extends AbstractHandler implement

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号