javaWEB模块webservice文档一_第1页
javaWEB模块webservice文档一_第2页
javaWEB模块webservice文档一_第3页
javaWEB模块webservice文档一_第4页
javaWEB模块webservice文档一_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、webservice_day01内容概述:1 webservice使用场景?2 客户端调用远程的webservice服务。3 webservice的三要素4 jax-ws的服务端和客户端的开发基于jdk的实现。5 wsdl说明书介绍6 注解的使用1. webservice应用场景webservcie是一种远程调用技术。查看ppt1.1. 业务场景:1.2. 解决不同网站之间数据共享问题?早期:webservice1.2.1. 开放数据库权限 不同的网站数据库 开发相关权限.1.2.2. u盘拷贝 简单适用 方便1.2.3. 网站采集不同数据 需要专业人员 分类整理 需要大量的工作劳动力2. 本

2、系统和其他网站系统交互方式一: socke 通信方式二: 接口协议 概念如ppt接口协议进行数据传递,优点:网站本身不需要知道其他方系统到底是如何获取数据的. 对方系统底层使用的数据库 我们不需要关心!举例: 手机归属地的查询.2.1. 我们需要什么样的接口答案:3. 第一个webservice案例演示需求:通过外网提供webservice服务查询手机号归属地: webservice服务网站网络查询介绍输入手机号 直接获取 手机归属地.演示.获取网站的ws服务wsdl 地址: 作用: 定义客户端生成代理类规范!3.1. 编写客户端 获取服务调用接口实现1:准备工作 磁盘g盘下 创建aa 目录2

3、: cmd 窗口 执行 wsimport 命令 解析 手机归属地wsdl 文件wsimport -p cn.itcast.mobilecode.stub -s source -d bin 回车 ok 创建一个java工程:第一步:生成本地代理类使用jdk 自带的命令 : wsimport的命令来解析wsdl文件 生成代理类:wsimport -s 如果报错: jdk 1.7 报错原因:.net生成的wsdl文件,用我们的jdk来解析的时候,有的元素不识别解决方法:将xml保存下来,删除不识别的元素,然后使用离线的方式进行解析;重新生成 执行命令.显示:说明解析成功!生成本地磁盘的的代码:客户端

4、代码开发 获取远程端手机归属地信息! mobilecodews服务类 -接口实例-调用接口业务方法 完成数据获取!只需要.java文件将其拷贝到刚刚新建号的java工程中:如果拷贝到工程中后,报错,错误提示:找不到相关方法,或者方法的参数不对。因为jdk1.6对wsimport生成的代码有些不匹配 如下所示:解决方案:1 更换jdk为1.7版本2 将参数删掉 一个也可以第二步:编写本地调用代码/客户端代码,来调用远程的ws服务运行输出:相关名称解释4. 什么是webservice4.1. webservice概念学生作业: estore/struts2/store 添加一个功能 4.2. we

5、bservice由来结论:webservice是标准化的产品,因此,各种流行的开发语言和平台都支持webservice。4.3. ws底层传输简介了解即可4.4. webservice三要素4.4.1. soap (简易对象访问协议)数据传输的协议(http+xml) 基于http协议传输.传输的内容是xml 4.4.2. wsdl (web services 描述语言 说明书)定义webservice数据是如何传输的,数据的内容 以及相关协议描述和定义客户端通过wsdl文件获取本地代理类(桩)wsimport jdk提供! -s -d -p 4.4.3. uddi (webservice注册

6、地)注册webservice服务整合和发现webservice服务类似目录服务器ppt所示4.5. wsdl离线使用说明案例 获取上海天气 网站获取 wsdl地址新建目录 1: cmd 窗口 使用wsimport2:回车 报错.语言之间存在 差异 . 采用离线解析方式 可以修改wsdl文件算出 不必要元素 不要删除名称空间含有的 3: 加载本地离线文件 生成源码以及编译之后字节码文件客户端编码编写测试 ok 5. jax-ws快速入门目标:通过jax-ws编写我们自己的服务端和客户端。编写自己的webservice 服务器端开发 提供数据服务 和以及对应的客户端开发5.1. jax-ws介绍s

7、oap是一个标准协议,webservice是使用该协议的标准!版本问题:不同jdk拥有不同的api实现。5.2. 服务端编写仅仅需要三步骤即可创建一个工程即可案例:演示手机号码归属地查询 (提供手机号码归属地)步骤一编写服务端点接口以及实现类实现类:步骤二在接口实现类上上添加注解webservice步骤三endpoint发布服务器端的服务 参照ppt 代码即可api简介 来自jdk 提供的类 endpoint提供的静态方法 发布ws服务该方法介绍使用main方法启动发布服务器:地址可以自定义 :9898/mobile注意:ip地址必须是本机的ip地址!端口绝对不能

8、已经被占用。查询端口是否已经被某某占用:可以使用命令 netstat -ano测试:浏览器直接输入该地址: :9898/mobile?wsdl即可 通过访问webservice的说明书地址来测试是否发布成功。 ok !测试 ok .至此 服务器端开发完成!5.3. 客户端编写一新建另一个工程:步骤:两步:步骤一使用wsimport命令生成本地代理类(简称:stub)wsimport命令简单使用介绍 查看文档jdk自带命令下发资料:控制台输入命令.将生成好的代码,复制到客户端的工程中。步骤二通过生成的代理类调用远程端的服务器的接口代码先获取服务类 直接new 即可

9、在使用服务类 调用接口的端口 得到服务器的接口的实例 即可.测试 ok !上述客户端调用存在不足:如果服务器端ip地址等信息如果发生变化,则,需要更改生成的代码(本地代理类重新生成)5.4. 客户端编写二使用service直接创建服务视图看到protected就别new。service 方法 : create 方法需要 url地址(wsdl地址) 以及 qname 对象(名称空间和服务视图名称) 查看wsdl文件 找到名称空间和对应的名称 名称空间最后/ 千万不能省掉的!客户端代码如下:好处: 服务器ip地址发生变换.那么客户端可以及时更新代码! 不需要重新生成本地代理类!6. wsdl文档说

10、明书介绍什么是wsdl:9898/mobile?wsdl是说明书的地址,wsdl地址;:9898/mobile是webservice的地址。6.1. wsdl的基本结构wsdl文档是服务端生成。-遵循规范 要求不同的语言生成的 都是xml格式!7. 注解使用说明问题:1 wsdl说明书标签由服务端的源代码生成的 这样导致服务器端的源码信息泄露。2 如果服务端代码发生了改变,客户端的代码也需要相应的变化。(开发不够灵活)3 采用注解 将wsdl文档生成结构以及信息 固定!-即使服务器接口代码发送变化 但是生成 wsdl 文件信息仍然不会发生变化 那么客户端生成

11、桩(代理类就不需要改变)7.1. 注解的作用注解: 对于wsdl 文档生成 自定义!7.2. 注解分类使用7.2.1. 加在类上面的注解范例演示:wsdl文件:7.2.2. 其他注解注解的范例演示:/手机号归属地查询/接口实现类:实现部分客户端测试:步骤一代理类:soap协议版本1.2,wsimport命令不兼容 警告 并且生成代理类过程失败 解决方案:在参数wsdl最后加上一个参数:步骤二:客户端代码:public class jaxwsannclient public static void main(string args) throws exception service servic

12、e=service.create(new url(:8888/mobile?wsdl),new qname( mobileaddressservice);/ 该代码信息 全部都是 注解里面信息 而不是服务器源代码里面的相关信息mobileaddress ma = service.getport(mobileaddress.class);/ wsdl文件 将会按照注解生成对应的相关信息!string addr= ma.getmobileaddress(12222232328);system.out.println(addr);小结:注解可以规范wsdl文档,可以将服

13、务端具体实现隐藏起来,服务端接口代码发生变化,不会影响wsdl的内容,客户端代码不需要修改。7.2.3. webservice的方法的须知:接口实现类的方法,1:必须是公开public的,2:非静态的。满足上述两点自动发布到webservice wsdl文件中。webservice可以有多个操作方法8. webservice开发须知8.1. 服务端开发注意作用:发布一个wb服务,提供相关数据(作用: 远程端数据库作用)代码一般写在业务层service层(业务层代码中逻辑需要事务控制)+dao服务端一般没有表现层(web层)8.2. 客户端开发注意作用:调用服务端,获取服务端的数据-服务端此时扮演的是数据库角色。代码设计:dao数

温馨提示

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

评论

0/150

提交评论