第一范文网 - 专业文章范例文档资料分享平台

axis2 WebService 开发指南

来源:用户分享 时间:2025/5/25 7:50:32 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

35

Axis WebService 技术指南

} try { } Thread.sleep(5000); e.printStackTrace(); } catch (InterruptedException e) { return \完成\; } 2、 services.xml文件,创建aar文件,然后复制aar文件到

[tomcat-home]\\webapps\\axis2\\WEB-INF\\services目录下 services.xml

AsyncService

com.hoo.service.AsynchronousService

class=\

class=\

mep=\

\ />

mep=\

ceiver\ />

3、 编写客户端测试代码 package com.hoo.service; import java.io.IOException; import javax.xml.namespace.QName; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.client.async.AxisCallback; import org.apache.axis2.context.MessageContext; import org.apache.axis2.rpc.client.RPCServiceClient; /** * function:异步WebService客户端代码 欢迎转载 请保留原文作者信息 不得未经作者允许用于商业用途

36

Axis WebService 技术指南

* @author hoojo

* @createDate 2011-3-14 上午09:00:03 * @file AsynchronousServiceClient.java * @package com.hoo.service * @project Axis2WebService

* @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */

public class AsynchronousServiceClient { {

String target =

RPCServiceClient client = new RPCServiceClient(); Options options = client.getOptions(); options.setManageSession(true);

EndpointReference epr = new EndpointReference(target); options.setTo(epr);

QName qname = new QName(\, //指定调用的方法和传递参数数据,及设置返回值的类型

client.invokeNonBlocking(qname, new Object[] {}, new

public void onMessage(MessageContext ctx) {

System.out.println(ctx.getEnvelope()); System.out.println(\ +

\;

public static void main(String[] args) throws IOException \);

AxisCallback() {

ctx.getEnvelope().getFirstElement().getFirstElement().getFirstElement().getText());

}

public void onFault(MessageContext ctx) { }

public void onError(Exception ex) { }

public void onComplete() { }

});

欢迎转载 请保留原文作者信息 不得未经作者允许用于商业用途

37

Axis WebService 技术指南

System.out.println(\异步WebService\); //阻止程序退出 System.in.read(); } } 上面是异步调用

WebService的代码,调用的方法是

client.invokeNonBlocking,这个方法有三个参数,参数一是执行的方法签名,参数二是执行该方法的参数,参数三是异步回调,这里隐式实现AxiaCallback接口

注意的是运行程序的时候要用Debug方式运行。

八、 编写Module模块

Axis可以通过Module模块进行扩展,用户可以编写定制自己的Module模块。编写一个Module的模块至少需要实现两个接口,分别是Handler和Module接口。开发axis2的Module模块需要如下步骤:

1、 实现Module接口的实现类,这个类要完成基本的初始化、销毁等操作 2、 实现Handler接口的实现类,这个类主要是完成业务处理 3、 在META-INF目录下,创建module.xml配置文件 4、 在axis2.xml中增加配置module的模块 5、 在services.xml中增加module的模块配置 6、 最后发表axis2的module模块,需要用jar命令将工程打包成mar,然后将mar

文件发布到[tomcat_home]/webapps/axis2/WEB-INF/modules目录下;

首先编写一个简单的WebService,代码如下: package com.hoo.module; import java.util.Random; /** * function:编写一个简单的WebService服务器端代码 * @author hoojo * @createDate 2011-3-15 上午06:19:15 * @file SimpleWebService.java * @package com.hoo.module * @project Axis2WebService * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */ public class SimpleWebService { } public int randInt() { } return new Random().nextInt(100); 欢迎转载 请保留原文作者信息 不得未经作者允许用于商业用途

38

Axis WebService 技术指南

编写Module接口的实现类,代码如下:

package com.hoo.module;

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; import org.apache.neethi.Policy; /**

* function:axis2模块,实现Module接口实现类 * @author hoojo

* @createDate 2011-3-15 上午03:22:24 * @file CustomModule.java * @package com.hoo.module * @project Axis2WebService

* @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */

public class CustomModule implements Module {

System.out.println(\} \);

public void engageNotify(AxisDescription axisDescription) throws AxisFault {

System.out.println(\ }

return true;

########\);

public boolean canSupportAssertion(Assertion assertion) { System.out.println(\} #\);

public void applyPolicy(Policy policy, AxisDescription axisDescription) throws AxisFault {

欢迎转载 请保留原文作者信息 不得未经作者允许用于商业用途

39

Axis WebService 技术指南

} System.out.println(\); } public void shutdown(ConfigurationContext ctx) throws AxisFault { public void init(ConfigurationContext ctx, AxisModule module) } System.out.println(\); throws AxisFault { 编写实现Handler接口的实现类,代码如下:

package com.hoo.module;

import org.apache.axis2.AxisFault;

import org.apache.axis2.context.MessageContext;

import org.apache.axis2.description.HandlerDescription; import org.apache.axis2.description.Parameter; import org.apache.axis2.engine.Handler; /**

* function:axis2模块Handler接口实现 * @author hoojo

* @createDate 2011-3-15 上午03:37:43 * @file CustomHandler.java * @package com.hoo.module * @project Axis2WebService

* @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */

public class CustomHandler implements Handler {

public String getName() { }

return this.name;

private String name;

public void setName(String name) { }

this.name = name;

欢迎转载 请保留原文作者信息 不得未经作者允许用于商业用途

搜索更多关于: axis2 WebService 开发指南 的文档
axis2 WebService 开发指南.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0pq1q8e53z1x2cx44ea3_8.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top