rad下集成开发web+services_第1页
rad下集成开发web+services_第2页
rad下集成开发web+services_第3页
rad下集成开发web+services_第4页
rad下集成开发web+services_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.rad下集成开发web services1 jax-ws 简介 jax-ws 2.0 是继 jax-rpc 1.1 之后的下一代 web 服务标准,它提供了完整的 web 服务协议栈,可显著减少开发和部署 web 服务所需要的工作。jax-ws 主要支持以下标准:java architecture for xml binding (jaxb) 2.0 simple object access protocol (soap) 1.2,以及 soap 1.1 web services description language (wsdl) 2.0,以及 wsdl 1.1 ws-i basic p

2、rofile (bp) 1.1 soap with attachments api for java (saaj) 1.3 相对于 jax-rpc,jax-ws 拥有以下一些新特性:提供了用于将传统 java 对象(plain old java object,pojo)类转换为 web 服务的annotation 库,从而加速了 web 服务的开发工作。 提供了异步编程模型,支持对 web 服务的异步调用。 支持消息传输优化机制(message transmission optimization mechanism,mtom),有效提高使用 soap 协议传输二进制格式附件的效率。2 web

3、服务开发概述 web 服务向导有两个关键作用: 1) web 服务开发, 和 2) 生成客户程序。由 web 服务向导生成的构件,根据服务器和所选的运行时不同,可能会不同。最终结果都是一个部署在服务器上的 web 服务。在 web 服务向导中有许多关键方案。其中一个是由 java bean 生成 web 服务的功能。这被称为 自底向上方案。另一种是由 web 服务描述语言 (web service description language,wsdl 参见 参考资料) 文件生成 web 服务的功能。这被认为是 自顶向下或者 框架的方案。如果供应商部署了 web 服务并且您要生成客户程序来使用 w

4、eb 服务,那么 web 服务客户程序向导将从 wsdl 文件开始创建。 精品. web 服务向导有许多不同方面的可用的测试工具。在开发人员将 web 服务部署之后,就会生成一张含有测试工具的直接用 wsdl 文件测试服务的测试页面。web 服务向导提供了一个充分整合的 wsdl 测试客户程序(通常所说的 web 服务浏览器)。 如先前所讨论的,向导还可以为已部署的 web 服务创建客户程序。客户程序包含了许多文件,这些文件可以帮助将 xml 信息经开发人员所选的运行时发送到已部署的 web 服务上。为了使操作对客户程序开发人员更简便,web 服务上的操作被映射到服务终端接口 (service

5、 endpoint interface,sei)中的 java 方法上。java 代理 (proxy) 是一个可以调用 sei 中方法的文件。web 服务向导包含了许多建立在 java 代理上的客户程序。generated sample test client (gstc) 和 universal test client (utc) 是两个使用已生成的 java 代理的测试客户程序。gstc 被设计用来提供给用户一个基于 web 的测试客户程序的实例。utc 是一个可以处理许多类型(包括聚集(collection)、映射(map)和数组(array)的基于 web 的动态引擎。gstc 不能处

6、理更复杂的能调用开发人员想要的数组、聚集和异常的 java 方法。但可以将 gstc 改造成能够处理在非向导生成的开发人员自创的 web 服务中的那些类型。 如 下图 所示,web 服务一般都是按典型的客户机/服务器的体系结构建立起来的。运行时的两个部分被认为是 requestor 和 provider。 2.1 自底向上 web 服务方案 从向导的不同方面着手,用不同的文件类型创建 web 服务。一种方式是用 java bean。web 服务会生成 requestor 端文件,包括代理 bean、wsdl 文件、和 provider 端文件。这种方式被认为是 自底向上方案,如图所示。 精品.

7、2.2 自顶向下方案 由 wsdl 文件开始并生成 requestor 端构件和 provider 构件,其中包含拥有 wsdl 操作的框架 bean。左边的实现部分等待填充。这被认为是 框架 或者 自顶向下 方案。参见 图 。3 创建web服务 项目创建一个只包含 java 类和所生成的 web 服务的新的 web 项目。 一个 web 项目实质上是 j2ee 规范中的 web 组件。 随后您将在另一个 web 项目中创建 jsp 客户端。 1. 在工作台中,选择file new project。 2. 选择web dynamic web project next。 3. 输入 car 作为

8、项目名称。 单击 finish。 如果提示切换到 web 透视图,选择 yes。3.1 第一步 创建一个 java 类 创建一个作为 web 服务后端的 java 类。 该 java 类不真正地做什么事情。 实际上,web 服务的后端可以做任何事。 1. 在 package explorer 视图中,展开 car并右键单击 java resources 并单击 new class后,生产java文件,在本例中用package duct.service.impl下的carserviceimpl.java文件。2. 选择这个文件,然后点击右键,弹出的对话框中选择newothe

9、rweb services,出现如下图:精品. 点击next,出现如下:精品. 默认选择自底向上的方式生成web services,一路默认,点击finish完成后,生成carserviceimplwebservices_sei.java的文件和carserviceimpl.wsdl文件。3.2 创建一个客户端 web 项目创建另一个寄存 jsp 客户端的 web 项目,作为调用 web 服务的客户端:1. 在工作台中,选择file new project。 2. 选择web dynamic web project next。 如果提示启用 web development 功能,就选择 ok。

10、 3. 输入 carclient 作为项目名称。 4. 在 ear membership 部分,点击 new 创建一个新的 ear 应用程序项目。 输入carclient精品.ear 作为项目名称。 单击 finish。 如果提示切换到 web 透视图,选择 yes。 单击 finish。 如果提示切换到 web 透视图,选择 yes。3.3 从主机项目中复制 wsdl 文件从 car 中将 wsdl 文件复制到您的客户端 web 项目中:1. 在 project explorer 视图中,展开 car webcontent web-inf。 2. 从 car / webcontent 位置将

11、 wsdl 文件夹复制并粘贴到 car / webcontent 位置。 确保将 wsdl 文件复制到 webcontent 文件夹下:3.4 生成代理由您之前复制的 wsdl 文件生成一个 web 服务客户端:1. 展开 carclient 下的 wsdl 文件夹。 右键单击 webservice.wsdl new other。 2. 在 new wizard 窗口中,选择复选框 show all wizards,观察所有可用的向导,包括那些用于当前未激活功能的向导。 3. 展开web services 并选择 web service client。 单击 next。 如果询问您启用“web

12、 services development”开发,单击 ok。精品.4. 在结果窗口中,确保选择了 java proxy。 单击 finish。 向导创建了一个只是调用 web 服务的 java 类的 java 代理。 5. 如果询问替代 web.xml 文件,单击 yes。 如果您获得异常,忽略它是正常且安全的。 6. 名为 demowebserviceproxy 的代理生成于 java resources javasource 文件夹中。 在下一个步骤中,创建一个 jsp 文件来使用此代理类调用 web 服务。3.5 创建一个 jsp 文件carwebserviceclient % try

13、 out.println(path:+request.getcontextpath(); /private carserviceimpl carserviceimpl;精品. duct.service.impl.carserviceimplwebservices proxy = new duct.service.impl.carserviceimplwebservices(); list carslist=proxy.getcarlist(); iterator listiterator = carslist.listiterator(); whil

14、e(listiterator.hasnext() cars s = (cars)listiterator.next(); out.println(s.getid(); catch (exception e) e.printstacktrace(); % 3.6 在浏览器中运行 jsp 文件1. 如果服务器还没有启动,请在 server 视图中启动服务器,然后使用 url 运行 jsp 文件: http:/localhost:9080/mywebserviceclientproject/mywebserviceclient.jsp 。 另一个方法是右键单击 jsp 文件并选择 run on se

15、rver。 2. 在 project explorer 视图中,右键单击 mywebserviceclient.jsp 文件并选择 run run on server。 3. 选择现有的服务器并单击finish以自动地将工程添加到服务器上,并在内部浏览器中运行 jsp 文件:4. jsp 文件调用代理,代理依次调用 web 服务。 在此练习中,web 服务和客户端运行在同一个 websphere application server 上,但它们还可以运行在不同的服务器上。 因为客户端只需要 wsdl 文件来调用 web 服务,所以它存在哪里没关系。精品.5. 如果服务器还没有启动,请在 server 视图中启动服务器,然后使用 url 运行 jsp 文件: http:/localhost:9080/mywebserviceclientproject/mywebserviceclient.jsp 。 另一个方法是右键单击 jsp 文件并选择 run on server。 6. 在 project explorer 视图中,右键单击 mywebservicec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论