一般开发Web Service,是选写服务端,再根据生成的WSDL文件生成客户端。看过一本SOA的书中说,如果实现防止不同语言一些特定的数据类型的不兼容性,推荐先定义WSDL接口,包括一输入输出参数、返回值及相关的数据类型等,再通过WSDL来生成服务器端和客户端,这样的好处是:服务端不用关心客户端怎么调用,客户端也不用关系服务端如何实现。
关于Eclipse中Axis2的配置方法,请看我的[图解教程] Axis2与Eclipse整合开发Web Service之一:简单的计算服务例子,下面来新建一个WSDL文件,如下图:
改个名字为“manager.wsdl”,如下图:
下一步,定义命名空间和协议等信息,默认即行。如下图:
finish后,会在主工作区出现如下图:
这是manager.wsdl的图形化形式,点击“Source”会可查看到源代码:
这是默认生成的wsdl,我们要根据我们的项目需要,修改上面的图,首先对方法名进行修改,如下图:
可见,修改之后,右边的input和output也跟着修改了,这两个就是定义plus的输入和输出。
点击input参数“plus”右边的提示箭头,进入下图:
就在这里定义输入参数和和参数类型等信息,因为我们plus(float x, float y)方法中有两个参数x和y,故我们将上图改成两个参数的序列:
变成下图,对比一下方法plus(float x, float y),下图也不会太难理解吧!
我们返回manager.wsdl视图,选择output参数右边的箭头,进入下图:
我们在这里设置float plus(float x, float y)方法的返回值及其类型,因其返回值只有一个,我们只须把上面的out的类型改成我们方法中用的float,改后,如下图:
有没有注意到上图左上角有个图标,点击它,进入下图:
我们可以在这里对输入输出的参数及其他数据类型进行修改,如果在上面的操作过程中,不小心产生了多余的标签的话,也可以在这里去除。
好了,我们再回到manager.wsdl,在源代码视图里右键选“Validate”,对xml文档进行检验,如果有错误的,就根据需要修改。
好了,图形化编写的wsdl文档完成了,顺便说一下,方法是可以定义多个的,如下图:
为简单起见,我们就先以刚才做定义的那个方法为例,看看,如何根据wsdl文件,自动生成Web Service的服务器端。
我们New一个Web Service,如下图:
记得在Web Service type中选择“Top down Java Bean Web Service”,如下图:
然后,在Service definition中找到刚才写的那个manager.wsdl文件。
回到Web Service对话框,将服务类型的滑块调到“Develop service”处,
接下来,就next –> next –-> finish就行。它会自动生成Web Service服务端的接口和类,在类中,可找到我们定义的方法:
我们只要修改方法plus的方法体,以实现我们要实现的功能即行。如下:
这是通过WSDL反向生成Web Service服务端的最简单一个例子,可能看不到有什么好处,没有像[图解教程] Axis2与Eclipse整合开发Web Service之一:简单的计算服务例子那样的简便快捷,但如果是一些特有的数据类型,如List,Set,这些,我们有在WSDL图形化设计中找到相应的替代类型,先定义WSDL再生成服务端接口,这样做,不仅Java开发客户端是没有问题的,用C#开发客户端也能成功没有出错!
但如果先开发服务器端的话,如果用到一些Java特有的数据类型,如List,Set,如果用其他语言生成的客户端,就可能出问题。同理,用C#开发服务端,如果用到像DataSet这样的返回类型的话,那如果用Java或者其他语言去开发客户端,也可能会出现问题的。
如果统一先写WSDL,再根据WSDL生成服务端和客户端,应该是一种很不错的做法,Eclipse在这方面的图形化支持给带给我们事半功倍的效果,这样做,也比较符合SOA的做法。
本文原创,转载请注明出处,谢谢!http://www.blogjava.net/rongxh7(心梦帆影JavaEE技术博客)
分享到:
相关推荐
Axis2与Eclipse整合开发的Web Service的服务端
Axis2与Eclipse整合开发Web Service之一:简单的计算服务例子
下载 axis2 eclipse codegen wizard zip 和 axis2 eclipse service archiver wizard zip http: labs xiaonei com apache mirror ws axis2 1 5 axis2 1 5 war zip 下载 axis2 1 5 war zip 2 .解压插件 $ECLIPSE ...
目前axis2最高版本是2.0以上的版本,但是eclipse和myeclipse都不支持,无奈只能使用低版本的插件1.6.3;经实验,可以安装成功;...axis2-eclipse-service-plugin-1.6.3.zip axis2-eclipse-codegen-plugin-1.6.3.zip
AXIS2最新版本1.7.3针对idea的wsdl、客户端、服务端代码生成的插件
1.1 Axis2(Eclipse)插件的安装。 1.2 Axis2.war的安装。 1.3 Eclipse Build Path。 二、 Web Service服务器端的发布。 2.1 创建java类。 2.2 创建services.xml。 2.3 发布服务。 2.4 在浏览器上测试服务。 三、 ...
内有axis1.4jar包以及使用eclipse和axis1.4 将WSDL和服务端代码互转方法 亲测可用
1.解压axis1.4.lib.zip; 2.运行 ResultNotify.bat脚本 ,生成代码。 3.把生成的java代码放到工程中。 4.把deploy.wsdd中的service 元素节的代码放到 server-config.wsdd中。
包括axis2-eclipse-codegen-plugin-1.7.9.zip和axis2-eclipse-service-plugin-1.7.9.zip,共享给有需要的
axis2根据wsdl生成java客户端代码 D:\Software\axis2-1.6.2\bin>wsdl2java.bat -uri http://10.33.30.216:9099/facs/services/ResourceSynchroWebService?wsdl -o E:\wsdloutput -p com.util wsdl2java.bat -uri ...
axis2-eclipse插件
共四个文件,都是最先版的,希望可以帮助大家。axis2-eclipse-service-archiver-wizard和axis2-eclipse-codegen-wizard和axis2-1.6.1-bin和axis2-1.6.1-war
资源包含了:axis2-1.7.4-bin.zip、axis2-1.7.4-war.zip、axis2-eclipse-codegen-plugin-1.7.4.zip、axis2-eclipse-service-plugin-1.7.4.zip。 myeclipse安装axis2.txt文件:详细说明了myeclipse如何安装axis2插件...
根据wsdl生成axis的服务端和客户端__工具
axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip,解压即可使用
axis2-eclipse-service-archiver-wizard.zip
标签:axis2.eclipse.service.plugin-1.5.jar,axis2.eclipse.service.plugin,1.5,jar包下载,依赖包
第一章 WEB SERVICE基础 3 一:WEB SERVICE是什么?...二:ECLIPSE 与APACHE AXIS2集成开发WEB SERVICE 16 第三章:XFIRE开发WEB SERVICE 16 1.XFIRE简介 17 2.XFIRE特点 17 3.ECLIPSE+XFIRE开发WEB SERIVCE 17
AXIS2 最新版本1.7.3针对 eclipse插件,一方面可以根据java接口类生成WSDL文件,另一方面可以根据WSDL生成客户端或服务端代码,生成的WSDL文件和代码符合web server SOAP协议规范标准!解压后的jar复制到Eclipse的...
axis2 eclipse插件代码生成器(包含客户端,服务端)axis2-eclipse-codegen-plugin-1.6.2.zip axis2-eclipse-service-plugin-1.6.2.zip