一聚教程网:一个值得你收藏的教程网站

最新下载

江苏快3综合走势走势图

时间:2011-01-24 00:00:00 编辑:简简单单 来源:原创

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开发透视图下

 

         eclipsebug提示:在eclipse3.3.1中有一个严重的bug:当在可视化环境下编辑wsdl文件时eclipse会提示outofmemoryerror错误。若修复这个bug,请按照下面方式修改文件:c:eclipseeclipse.ini:

 

web service简单应用实例

 

2.安装axis2

         接下来,去http://ws.apache.org/axis2下载”standard binary distribution”(比如:axis2-1.5.4-bin.zip).解压到c:axis。切换到目录c:axisbin下运行axis2server.bat将启动axis服务器。你将看到如下画面

 

            打开浏览器并访问地址http://localhost:8080/ 你将看到如下画面:

 

web service简单应用实例

 

这说明在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 servicewsdl文件

         假如你想创建一个在第一章描述的web service

 

            wsdl语言来描述,应该是这样的

 

         上面定义了schemaport type。下面我们来定义bindingport

  

 

         实际上,在soap binding中,你可以指定更详细的信息

  

 

5.rpc类型的web service (版本一)

         如果创建的web servicerpc类型的,那么wsdl文件应该是这样的

  

 

         因为rpc类型web service不是实践中最好的选择。建议使用文档类型(document style)的版本

6.以可视化方式创建wsdl

         以手写方式创建wsdl文件容易出错误。幸运的是,在eclipse中可以在可视化方式下进行wsdl的创建。首先,在eclipse中创建一个名称为simpleservicejava工程

 

         在创建工程的过程中,保证对于源代码和类文件使用不同的文件夹。然后继续完成工程的创建。接下来,右键单击工程并选择菜单”new|other”,然后选择”web services|wsdl”:

 

web service简单应用实例

 

         如果你没有看到这个选项,说明你没有安装javaee版本的eclipse。如果正常工作,单击”next”并输入simpleservice.wsdl作为文件名

 

         单击”next”,接着安装下图图示输入

 

         单击”finish”,你将会得到如下画面:

 

web service简单应用实例

 

         这是wsdl的代码文件表现形式。如果要进行可视化编辑,单击编辑器窗口底部的”design”标签。你看到

 

         双击endpoint将其改为http://localhost:8080/axis2/services/simpleservice:

 

web service简单应用实例

 

         双击operation将其改为”concat”:

 

web service简单应用实例

 

         现在,input part 是一个>元素(element).让我们把其改为.把鼠标光标移动到图像右边缘的箭头上,箭头会变成蓝颜色。光标停留几秒钟,会出现一个元素定义的窗口:

 

web service简单应用实例

 

         单击其他地方窗口会消失。为了编辑schema 定义(比如:在这里是指元素的定义),单击蓝色箭头。一个新的编辑器窗口会出现

 

         如果要想可视化(图形化)方式编辑,单击编辑器底部的”design”标签,你将会看到

 

         双击”in”把其改为”s1”:

 

web service简单应用实例

 

         右键单击(concattype)选择”add element”并把名字设置为”s2”:

 

web service简单应用实例

 

         默认情况下元素类型被设置为string(比如:元素s1,s2)。如果要更改元素类型,双击其类型会出现一个下拉列表选择框可以选择合适的元素类型

 

         如果你想让s2s1之前显示,可以把其选中拖放在s1前面

 

         现在,还是保持s1s2之前显示。接下来右键单击元素,并选择”refactor|rename”,把其名称改为concatrequest:

 

web service简单应用实例

 

         现在已近完成了对元素的设置。现在返回到wsdl编辑器开始对response message进行设置。目前,元素如下图所示

 

         如上图所示,concatresponse是一个包含了元素的元素:

        

                   abc

        

         然而,在接口设计的时候,response是一个简单类型的元素,而不是一个复杂类型元素

 

         那么如何更改concatresponse的类型呢?右键单击选择”set type|browse”:

 

web service简单应用实例

 

         选择”string”:

 

web service简单应用实例

 

         成功更改后,concatresponse会变成下图所示

 

         好了,现在让我们查看一下整个schema,单击左上角的图标:

 

web service简单应用实例

 

         你将看到:

 

web service简单应用实例

 

         看起来不错吧?o(_)o~。现在,保存下文件吧!

7.验证wsdl 文件

         为保证wsdl文件遵守各种web service标准,接下来我们对其进行验证。验证操作非常简单:右键单击simpleservice.wsdl文件选择”validate”. 如果有任何错误,会在问题窗口显示。比如,这里我引入了一个错误在simpleservice.wsdl文件中

 

web service简单应用实例

 

8.生成一个service stub

         接下来,为了实现这个web service,需要生成一个 “service stub”(见下图)。当一个请求消息到来时,service stub 会把xml元素>转换为一个concatrequest java对象。然后,concatrequest对象被传递给concat()方法,concat()方法在service skeleton(service skeleton 需要你来提供).concat()方法会创建一个concatresponse java对象并将其返回。service stub 获得concatresponse对象并把它转化为一个xml元素然后再把这个xml元素返回给客户端

 

         以上对原理进行了简单的介绍,接下来我们进行实践操作。在eclipse中选择菜单”file|new|other” 并选择”axis2 code generator”(见下图).默认是从wsdl文件生成java代码。默认选择正是我们所要选择的

 

         单击”next”(见下图).单击”browse”定位到simpleservice.wsdl文件:

 

         单击”next”(见下图).像下面一样设置每个选项:

 

            注意namespace是如何默认映射为java 包的。比如,simpleserviceport type在命名空间http://ttdev.com/ss中,映射到java包结构为com.ttdev.ss

 

         当然,这只是默认的映射方式。在上面的对话框中可以自定义java包结构。但是对于我们来说默认的映射也比较合理。接下来单击”next”并输入以下信息

 

         单击”finish”.邮件单击工程文件夹选择”refresh”.然后你将看到以下一些生成的文件

 

         java 源代码文件会提示很多错误,这是因为这些源代码会引用到axis2jar文件但是目前这些文件不在build path中。所以,打开build path 对话框并单击”add jars”按钮:

 

         选择工程中”lib”文件夹下的所有的jar 文件

 

         这时,所有的提示错误都会消失掉。o(_)o~

 

9.实现web service

         要实现web service,需要更改simpleserviceskeleton.java文件,这个文件即service skeleton

 

         concatrequest类和concatresponse类从哪里得来的呢?它们是由axis2 code generator生成的

 

web service简单应用实例

 

10.部署web service

         axis2服务器中,部署web service,只需要按照下图进行文件的拷贝就可以了:

 

         现在,通过运行:c:axisbinaxis2server.bat文件启动axis2服务器。你应该看到服务器已经获得了simpleservice :

 

         打开浏览器,在地址栏输入http://localhost:8080 你将看到simpleservice

 

         若要查看simpleservicewsdl文件,只需要单击”simpleservice” 链接即可

 

web service简单应用实例

 

11.通过客户stub创建一个客户端

         若访问一个web service, 需要使用axis2的代码生成工具生成一个”client stub”(客户 stub).当访问web service中的一个方法时,stub 会把你程序中的java 对象数据转化为适当的格式(xml格式的soap),并在soap中创建请求消息,然后通过internet使用适当的传输协议 (http)把其(soap)发送到正确的endpoint(端点).当有响应到来时,stubxml格式的消息再转化为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 applicationaxis 服务器可以作为一个web application安装到tomcat中。axis可以承载一个或者多个web service

         普遍情况下,输入消息和输出消息是以soap消息传送的。一个soap消息总是一个元素。其中可能包含一个

元素,是由一个或多个头结点或者头元素组成。必须包含一个元素,是由一个或多个body节点或元素组成。对于文档类型的web service,通常仅有一个输入消息部分(input message part)作为一个单一的body入口。对于rpc类型的web service,元素通常包含所有的消息部分(message parts)作为一个单一的body 节点。

         创建一个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 数据对象返回

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

web service简单应用实例

文章评论

热门栏目