基于Axis2用IDEA9开发WebService客户端

本文介绍如何使用IDEA9和Axis2生成WebService客户端代码。主要内容包括生成客户端代码的原因、生成原理及IDEA配置步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

基于Axis2IDEA9开发WebService客户端

环境:

IDEA9+JDK1.6+Axis2

 

用到的工具包如下:

axis:http://ws.apache.org/axis2/

 

基础知识:

1.     Web Services常用的框架;

2.     XML基础语法;

3.     WSDL,SOAP;

 

一、为什么要生成客户端代码

生成WebService的客户端的代码的目的是为了方便请求和提高性能。因为有了存根,就可以以本地代码编程的方式来调用WebService服务,因为存根代码是在本地静态编译的,这比动态请求解析wsdl要快,不同的框架框架实现性能差异也很大。有了本地存根代码,便于对WebService的请求管理在本地做进一步封装。

     出于以上原因,做WebService程序,应该生成本地存根代码,通过存根来调用WebService服务。

 

二、生成原理

     一般来说,流行的XFireAxis2CXF等都有一些工具,统称为WSDL2Java工具。这些工具的作用就是为了生成WebService客户端存根的,针对相应的主流Java IDE工具,IDEA,Eclips,Jbuilder等应该都可以找到相应的插件来支持这项功能.

IDEA生成存根代码的原理实际上通过调用这些WSDL2Java工具来生成的。因此,在使用IDEAWebService客户端代码生成工具的时候,需要配置相应的框架包。

同理,使用其他IDE工具,Eclipse,Jbuilder,或者说其他开发语言,C,Delphi等等也都有类似的WSDL2Java工具来生成相应的客户端代码,生成原理都如同以下代码:

Java -Djava.ext.dirs=lib org.apache.axis2.wsdl.WSDL2Java uri http://localhost:8080/axis/Hello.jws?wsdl

其中url链接为提供webservice服务的服务器地址和服务名称,它们都是通过提供URL的形式来发布相应的Webservice接口.

总之,用什么框架开发WebService与用什么工具WebService 存根是没有关系的

 

三、IDEA生成代码前的配置

新建一个project,其中Modules配置如下,webservices的客户端模式选择为Apache Axis2

 

 

 

四、具体操作过程

如果要生成客户端代码,可以新建一个一个工程后,选择如下方法进行:

 

 

然后,点击OK,会出现一个对话框

 

 

Url一栏填上webservices服务端提供的服务,生成前可在IE浏览器上直接访问该URL,如果返回的是xml文档,则表示该服务成功发布.如果该wsdl发布成功,则该对话框中”OK”键显示为可点击状态,如发布失败,则显示为灰色.

点击”OK”,生成代码如下:

 

其中:

.wsdl文件:用来对Web Service进行描述的文件,包括期望的消息格式类型、所使用的Internet协议和Web ServiceInternet地址;

Xxx_PortType: 定义了Web服务接口;

XxxService: 定义了用于获取Web服务接口的方法;

XxxServiceLocator: 接口XxxService的具体实现;

XxxSoapBindStub: Web服务客户端桩,通过该类与服务器交互;

XxxReq和XxxResp这二个类,是我在项目中将客户端/服务端的基类,所有的请求/应答包都基于这二个类,将请求/应答对象化后,可以传送自定义类型,也方便进行扩展.

这几个JAVA类帮我们处理了大部分的逻辑,我们需要的仅仅是把这些类加到我们的项目然后创建一个我们自己的类来调用它们即可. WSDL2Java工具自动产生的几个类中,类XxxServiceLocator中保存这一些跟服务器相关的信息,例如URL地址等,当服务器的地址更改后但是服务并没有改动的时候直接修改该文件中的字符串定义,而无需重新生成这几个类

 

基于:http://lavasoft.blog.51cto.com/62575/105957 结合IDEA版本的不同进行相应修改,主要增加了些文件说明和图片.

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值