最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
web service简单应用实例
时间:2022-06-25 05:46:51 编辑:袖梨 来源:一聚教程网
1.安装eclips教程e
需要安装eclipse v3.3或者以上版本,而且满足javaee开发。如果没有去http://www.eclipse.org下载javaee开发版本的eclipse ide(比如:eclipse-jee-helios-sr1-win32.zip)。解压到路径c:eclipse.然后在桌面创建快捷方式。并创建默认工作空间c:workspace.运行eclipse并转到javaee开发透视图下:
eclipse的bug提示:在eclipse3.3.1中有一个严重的bug:当在可视化环境下编辑wsdl文件时eclipse会提示outofmemoryerror错误。若修复这个bug,请按照下面方式修改文件:c:eclipseeclipse.ini:
2.安装axis2
接下来,去http://ws.apache.org/axis2下载”standard binary distribution”(比如:axis2-1.5.4-bin.zip).解压到c:axis。切换到目录c:axisbin下运行axis2server.bat将启动axis服务器。你将看到如下画面:
这说明在axis服务上已经存在了一个名称为”version”的web service。单击”version”连接你将看到它的wsdl文件:
3.在eclipse上安装axis2插件
去http://ws.apache.org/axis2/tools/index.html下载代码生成插件(code generator 比如:axis2-eclipse-codegen-plugin-1.5.4.zip)。把它解压到c:eclipseplugins文件夹下面。重启eclipse如果需要。检验是否安装成功,选择菜单”file|new|other”看是否有”axis2 code generator”选项:
4.web service的wsdl文件
假如你想创建一个在第一章描述的web service:
上面定义了schema和port type。下面我们来定义binding和port:
实际上,在soap 的binding中,你可以指定更详细的信息:
5.rpc类型的web service (版本一)
如果创建的web service是rpc类型的,那么wsdl文件应该是这样的:
因为rpc类型web service不是实践中最好的选择。建议使用文档类型(document style)的版本
6.以可视化方式创建wsdl
以手写方式创建wsdl文件容易出错误。幸运的是,在eclipse中可以在可视化方式下进行wsdl的创建。首先,在eclipse中创建一个名称为simpleservice的java工程:
在创建工程的过程中,保证对于源代码和类文件使用不同的文件夹。然后继续完成工程的创建。接下来,右键单击工程并选择菜单”new|other”,然后选择”web services|wsdl”:
如果你没有看到这个选项,说明你没有安装javaee版本的eclipse。如果正常工作,单击”next”并输入simpleservice.wsdl作为文件名:
单击”next”,接着安装下图图示输入:
单击”finish”,你将会得到如下画面:
这是wsdl的代码文件表现形式。如果要进行可视化编辑,单击编辑器窗口底部的”design”标签。你看到:
双击endpoint将其改为http://localhost:8080/axis2/services/simpleservice:
双击operation将其改为”concat”:
现在,input part 是一个
单击其他地方窗口会消失。为了编辑schema 定义(比如:在这里是指
如果要想可视化(图形化)方式编辑,单击编辑器底部的”design”标签,你将会看到:
双击”in”把其改为”s1”:
右键单击(concattype)选择”add element”并把名字设置为”s2”:
默认情况下元素类型被设置为string(比如:元素s1,s2)。如果要更改元素类型,双击其类型会出现一个下拉列表选择框可以选择合适的元素类型:
如果你想让s2在s1之前显示,可以把其选中拖放在s1前面:
现在,还是保持s1在s2之前显示。接下来右键单击
现在已近完成了对
如上图所示,concatresponse是一个包含了
然而,在接口设计的时候,response是一个简单类型的元素,而不是一个复杂类型元素:
那么如何更改concatresponse的类型呢?右键单击选择”set type|browse”:
选择”string”:
成功更改后,concatresponse会变成下图所示:
好了,现在让我们查看一下整个schema,单击左上角的图标:
你将看到:
看起来不错吧?o(∩_∩)o~。现在,保存下文件吧!
7.验证wsdl 文件
为保证wsdl文件遵守各种web service标准,接下来我们对其进行验证。验证操作非常简单:右键单击simpleservice.wsdl文件选择”validate”. 如果有任何错误,会在问题窗口显示。比如,这里我引入了一个错误在simpleservice.wsdl文件中:
8.生成一个service stub
接下来,为了实现这个web service,需要生成一个 “service stub”(见下图)。当一个请求消息到来时,service stub 会把xml元素
以上对原理进行了简单的介绍,接下来我们进行实践操作。在eclipse中选择菜单”file|new|other” 并选择”axis2 code generator”(见下图).默认是从wsdl文件生成java代码。默认选择正是我们所要选择的:
单击”next”(见下图).单击”browse”定位到simpleservice.wsdl文件:
单击”next”(见下图).像下面一样设置每个选项:
当然,这只是默认的映射方式。在上面的对话框中可以自定义java包结构。但是对于我们来说默认的映射也比较合理。接下来单击”next”并输入以下信息:
单击”finish”.邮件单击工程文件夹选择”refresh”.然后你将看到以下一些生成的文件:
java 源代码文件会提示很多错误,这是因为这些源代码会引用到axis2的jar文件但是目前这些文件不在build path中。所以,打开build path 对话框并单击”add jars”按钮:
选择工程中”lib”文件夹下的所有的jar 文件:
这时,所有的提示错误都会消失掉。o(∩_∩)o~
9.实现web service
要实现web service,需要更改simpleserviceskeleton.java文件,这个文件即service skeleton:
concatrequest类和concatresponse类从哪里得来的呢?它们是由axis2 code generator生成的:
10.部署web service
在axis2服务器中,部署web service,只需要按照下图进行文件的拷贝就可以了:
现在,通过运行:c:axisbinaxis2server.bat文件启动axis2服务器。你应该看到服务器已经获得了simpleservice :
打开浏览器,在地址栏输入http://localhost:8080 你将看到simpleservice:
若要查看simpleservice的wsdl文件,只需要单击”simpleservice” 链接即可:
11.通过客户stub创建一个客户端
若访问一个web service, 需要使用axis2的代码生成工具生成一个”client stub”(客户 stub).当访问web service中的一个方法时,stub 会把你程序中的java 对象数据转化为适当的格式(xml格式的soap),并在soap中创建请求消息,然后通过internet使用适当的传输协议 (http)把其(soap)发送到正确的endpoint(端点).当有响应到来时,stub把xml格式的消息再转化为java对象数据,并将其返回给你。
按照以下步骤生成客户stub。运行axis2 code generator 向导直到看到下图所示的步骤。这次选中生成客户端代码(generate client side code):
然后选择把生成的代码输出到simpleservice 工程。
单击”finish”并刷新工程。你将看到一些新生成的java 类文件:
在上图的类文件中,simpleservicestub.java 是客户stub。这就好比你模仿他人访问你的自己的web service一样,他人不可能把客户端代码和web service的实现代码混在一起。因此,把客户端代码放到单独的包中,比如com.ttdev.ss.client.
接下来,在com.ttdev.ss.client包中创建simpleclient.java类文件:
运行它,会获得如下输出:
12.卸载web service
如果要卸载web service。只需要把simpleservice文件夹删除即可:
即使在axis2 服务器运行的时候,删除文件夹操作一样正常工作。服务器会提示文件夹被删除和service被成功卸载。
如果把删除的service文件夹复原。axis2 服务器会立刻重新部署:
这就是所谓的”hot deployment””(热部署)。
13.本章总结
tomcat承载了一个或者多个web application。axis 服务器可以作为一个web application安装到tomcat中。axis可以承载一个或者多个web service。
普遍情况下,输入消息和输出消息是以soap消息传送的。一个soap消息总是一个
创建一个web service,首先要创建一个wsdl文件用来描述web service的接口。通常通过工具来创建wsdl文件,比如用eclipse。使用axis code generator向导通过wsdl文件生成服务器端stub。然后在service skeleton中填充自定义代码。服务器端stub 的作用是把请求消息中的xml元素转化为java对象数据,然后调用skeleton并把java 数据对象以xml元素返回,然后封装到相应消息(response message)中。
部署一个web service,拷贝类文件和services.xml文件到axis2 服务器中要符合特定的文件结构。如果要卸载一个web service只要删除相应的web service 文件夹即可。axis2 服务器支持热部署。这意味着,可以在服务器运行中,部署和卸载web service。
部署的web service的端点(endpoint)是:http://localhost:8080/axis2/services/%3cname-of-your-service>.
访问一个web service,在相应的wsdl文件上运行axis code generator向导生成一个客户端stub。然后在自己的代码中创建一个client stub的实例,把其当作一个web service进行调用。客户端 stub将把java 数据对象转化为xml 元素,并以正确的格式创建请求消息,然后通过适当的传输协议把请求消息发送到正确的端点(endpoint),并把相应消息中的xml元素转化为java 数据对象返回
相关文章
- 人们熟悉的寄居蟹属于以下哪种分类 神奇海洋11月21日答案 11-21
- 第五人格11.22共研服有什么更新 11月22日共研服更新内容介绍 11-21
- 原神恰斯卡怎么培养 11-21
- 无期迷途四星装束是谁 11-21
- 王者荣耀帝丹高中校服怎么获得 11-21
- 光遇姆明季后续版本怎么玩 11-21