[图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端

一般开发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的做法。

转载于:https://blog.51cto.com/gzmlily/1409988

[图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端相关推荐

  1. [Axis2与Eclipse整合开发Web Service系列之三] 服务端返回值

    前言 在前面的三篇中 [Axis2与Eclipse整合开发Web Service系列之一] 生成Web Service Client(将WSDl 转化成 Java代码) [Axis2与Eclipse整 ...

  2. [Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端(续)

    前言 本篇是承接上一篇: [Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端 在上一篇粗略地介绍了如何使用Top-Down的方式创建 ...

  3. [Axis2与Eclipse整合开发Web Service系列之一] 生成Web Service Client(将WSDl 转化成 Java代码)

    需求描述 有一个WSDL地址, 需要把它转化成Java代码调用. IDE环境要求 这里使用Eclipse自动生成.这里的eclipse需要安装有Web开发插件. 步骤 1. 首先新建一个 " ...

  4. [Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端

    开始本篇之前, 先说说 Buttom-up(从下到上)和Top-down(从上到下)的概念 这是开发WebService的两种方式. bottom-up 方式: 先创建Java Bean或EJB, 然 ...

  5. 用eclipse europa开发web service服务 - 东写西读终见大海无量 - JavaEye技术网站

    用eclipse europa开发web service服务 eclipse europa自带web工具.我们可以使他生成动态web程序.但是在默认情况下,生成的动态默认程序是不包含web servi ...

  6. 基于Tomcat5.0和Axis2开发Web Service应用实例

    本文将介绍如何使用Tomcat5.0和Apache Axis2开发.部署及测试一个简单的Web Service应用.<?xml:namespace prefix = o ns = "u ...

  7. 基于Tomcat5.0和Axis2开发Web Service代码详解

    本文将详细介绍HelloWorld中使用的server和client端代码.阅读之前,你应该首先了解SOAP1.1协议.<?xml:namespace prefix = o ns = " ...

  8. myeclipse下用axis2开发web service的第一个程序(SayHello)

    jar包 axis.jar jaxrpc.jar saaj.jar commons-logging.jar commons-discovery.jar wsdl4j.jar SayHello是很多人都 ...

  9. myeclipse下用axis2开发web service

    SayHello是很多人都写过的web service.实现的功能是通过web服务输出"人名,how are you?" 本文参考网上众多资料,有的也不知源作者是谁,就不一一列举了 ...

最新文章

  1. 三、K3 Cloud 开发插件《K3 Cloud插件开发新手指导 + K3 Cloud插件开发代码调试》
  2. python分块处理功能_python 对列表分块
  3. mysql100链接同时处理_php 连接MYSQL 两个同时连接为什么只有一个连接成功,必须删掉一个,另外一个才查询生效出结果,下附代码...
  4. Axure教程 axure新手入门基础(2) 简单易上手
  5. SP913 QTREE2 - Query on a tree II
  6. 利用 sql server agent(sql server代理)实现定时备份
  7. linux版本i686,在Ubuntu中'i686'是什么意思? - Ubuntu问答
  8. 2021年道路运输企业主要负责人和安全生产管理人员安全考核题型二[安考星]
  9. 出租车计费器的Verilog语言简单完成
  10. 手把手教你软件著作权申请(全流程)(不花一分冤枉钱)
  11. python创意网络爬虫_Python网络爬虫(一)
  12. 哈特公社,在家也能轻创业
  13. 键盘测试软件 - Vintage Keyboard Analyzer
  14. mongo配置项说明
  15. 洛谷 P1251 餐巾计划问题 题解
  16. 生命以负熵为生:浅析零知识证明
  17. selenium翻页获取京东图书名称和价格
  18. 什么学习软件需要身份证验证_什么是两层身份验证,为什么我需要它?
  19. 以编程方式使用 Microsoft Office Visio 2003 ActiveX 控件(经经经经经典)
  20. Log4j 重写 RollingFileAppender 实现按日期生成文件夹文件名

热门文章

  1. 网络推广过程中切忌要注意的问题
  2. Windows xp/2003 中安装虚拟网卡 Microsoft Loopback Adapter
  3. 三星笔记本又发新品,这一次仍然惊艳
  4. mysql主从(GTID复制模式)
  5. c++数据结构之广义表
  6. Xen Server二安装xc及管理xen主机
  7. 一个class运用promise的延时调用
  8. ElasticSearch之集群原理
  9. linux安装android sdk
  10. [PA2014]Pakowanie