Web Service 教程
一、webservice介绍
1.使用场景
- 不同的移动客户端访问
- 需要访问第三方的项目
2.访问第三方应用的方式
ISO的七层模型 : 物理层、数据链路层、网络层、传输层、表示层、会话层、应用层
- Socket访问 : Socket属于传输层,它是对Tcp/ip协议的实现,包含TCP/UDP,它是所有通信协议
的基础,Http协议需要Socket支持,以Socket作为基础
Socket通信特点:
1. 开启端口,该通信是 长连接的通信 ,很容易被防火墙拦截,可以通过心跳机制
来实现 ,开发难度片段
2. 传输的数据一般是字符串 ,可读性不强
lj|16|1|60|up
3. socket端口不便于推广
http:17.23.23.2:2345 www.jd.com www.360buy.com
4. 性能相对于其他的通信协议是最优的
- Http协议访问 :属于应用层的协议,对Socket进行了封装
1. 跨平台
2. 传数据不够友好 :
get请求: http://127.0.0.1:8888?username=lj&pwd=1234
3. 对第三方应用提供的服务,希望对外暴露服务接口
问题:
1. 数据封装不够友好 :可以用xml封装数据
2. 希望给第三方应用提供web方式的服务 (http + xml) = web Service
- Webservice
1.webService介绍
2.webservice的规则
- xml
- soap :(simple object access 协议) :简单对象访问协议
- wsdl : webservice描述语言 ,它也是xml实现的
3.webservice的优点
4.webservice专业名称
1. xml
2. wsdl
3. soap
二、调用第三方的WS服务
1.体验webservice www.webxml.com.cn
2.准备客户端,调用第三方的webservice服务,让本项目有手机查号的功能
- 一般访问方式 HttpClient
1. Http-GET
2. Http-Post
3. Soap (http+xml)
问题:1. 如何解析结果
2. 如何传递对象参数
- 推荐的访问方式
在jdk 1.6 版本以后 ,通过jax-ws 包提供对webservice的支持
- 该方式通过注解的方式来声明webservice
- 通过 jdk EndPoint.publish()发布webserive服务
早期的版本 : jax-rpc (remote produce call)
webservice 纳入 w3c规范,其他的平台都支持该规范 :JEE\Php\.NET
都支持wsimport 方式 : 对远程的webservice生成本地代理,再通过本地代理
来访问webservice
- wsimport 命令的位置:
C:\Program Files\Java\jdk1.7.0_04\bin
- 要求:
1. jdk的 版本要在 jdk 1.6.21及以上
2. 操作系统安装的jdk版本 与 MyEclispe 及 默认指定的版本要一致
- wsimport使用:
记得设置jdk\bin 环境变量 指定path
语法 wsimport [opations] <wsdl_uri>
- wsdl_uri:wsdl 的统一资源标识符
- d :指定要输出的文件的位置
- s :表示要解析java的源码 ,默认解析出的是class字节码
- p : 指定输出的包名
三、自定义及发布一个webservice服务
- 声明 某个业务服务为webservice服务
通过@webservice 注解来声明
- 发布webservice服务
Endpoint.publish()发布
- 通过wsimport生成本地代理来访问自己发布的webservice
wsimport
四、webservice传输实体对象
五、练习:
1. 调用教师机的ws服务
步骤:
1. 系统jdk环境与myeclipse jdk 环境一致 ,1.6.021以上
2. 知道服务端的WDSL路径
http://192.168.114.10:8888/ws/phoneService?WSDL
3. 命令行 wsimport -s ./ -p cn.itcast.ws.d http://192.168.114.10:8888/ws/phoneService?WSDL
4. 导入通过wsimport 解析的java类,再编写一个main测试
MoblieOsInfoService ws=new MoblieOsInfoService();
MoblieOsInfo phoneServicePort = ws.getMoblieOsInfoPort()
PhoneOs phone=phoneServicePort.getMobileOsInfo("android");
2. 创建自己的ws服务并发布、调用
步骤: 1.声明webservice服务 (@webService)2. 发布webservice(EndPoint.publish) 3. 客户端访问(wsimport)
1. 创建一个要通过webservice对外发布的java bean : PhoneService
2. 在java 的入口main方法 通过EndPoint 发布一个服务端点
String address1="http://192.168.19.10:8888/ws/phoneService";
Endpoint.publish(address1, new PhoneService());
System.out.println("adrress1的WSDL地址"+address1+"?WSDL");
六、WSDL文件介绍 :webservice服务说明
七、通过注解配置修改wsdl文件, 让它具有更好的可读性
需求:
1. 想改方法的输入参数名、返回参数名
2. 想改服务名,方法名
3. 对该业务类的某些方法不想对外发布
- 默认只有public 修饰的方法会以webservice的形式对外发布
而 private 受保护的,缺省的,都不会发布
- 某些public 方法也不想对外发布
实现:注解配置修改wsdl文件
重点:
1. webservice 的作用、规则、优点
2. 专业名词
wsdl 、 soap 、 xml
3. wsimport 生成本地代理
4. 通过JEE方式声明与发布webservice
- 声明 :@webservice
- 发布 :EndPoint
5. WSDL文件描述
6. 通过修改注解,配置wsdl文件,增强可读性
Web Service 教程相关推荐
- 视频专辑:Web Service视频教程
为什么80%的码农都做不了架构师?>>> 1 1. Web Service教程 XML DTD详解 2013-10-31 12:40 | 播放(16) | 评论(0) | ...
- [图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端
[图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端 一般开发Web Service,是选写服务端,再根据生成的WSDL文件生成客户端.看过一本SOA的书中 ...
- 最详细的使用 soapui 消费 SAP Cloud for Customer Web service 的教程
本文就以SAP Cloud for Customer的web service消费这个需求为例,来讲解soapui这个工具的使用步骤. 使用soapui消费web service,最简单的方式是在soa ...
- Python中使用GoogleMaps API(包含Geocoding API,Places API Web Service )详细教程
前言 业务需要根据经纬度获取该城市的邮政编码,需要通过调用GoogleMaps来搜索地点,来获取地点的详细信息.于是查阅了一些相关的资料,特意分享出来给大家参考参考. 涉及相关的资料: google官 ...
- 使用JAX-RS创建RESTful Web Service
guice resteasy http://www.cnblogs.com/ydxblog/p/7891224.html http://blog.csdn.net/withiter/article/d ...
- 通向架构师的道路(第十二天)之Axis2 Web Service(三)
一.SOAPIn Axis2 在前两天的教程中,我们学习到了用Axis2如何进行复杂数据.简单数据进行传输. 正如我在前一天教程中所说,在web service的世界里,一切都是基于SOAP的,因此在 ...
- 通向架构师的道路(第十天)之Axis2 Web Service(一)
一.Axis2简介 1.1 介绍Axis2 Axis框架来自 Apache 开放源代码组织,它是基于Java语言的最新的 SOAP 规范(SOAP 1.2)和 SOAP withAttachments ...
- 使用nodejs消费SAP Cloud for Customer上的Web service
Jerry在公众号文章C4C和微信集成系列教程里曾经使用nodejs去消费C4C提供的标准webservice. 看一个具体例子:C4C里Individual Customers可以维护Social ...
- 在 Visual Studio 2010 中创建 ASP.Net Web Service
第一步:创建一个"ASP.Net Empty Web Application"项目 第二步:在项目中添加"Web Service"新项目 第一步之后,Visua ...
最新文章
- Markdown矩阵、表格和数学公式
- jsp页面中使用超链接标签a中的属性href和onclick同时触发怎么执行
- cmd运行python服务器,python如何利用paramiko执行服务器命令
- 由于更换了java版本,Eclipse启动时报错:JRE or JDK must be available in order to run Eclipse
- python数字从大到小排列_Python练习题 005:三个数字由大到小排序输出
- java集合——集合框架
- Python(21)--变量进阶
- WinSock API相关函数
- 京瓷m1025维修模式进不去_多个品牌复印机进入维修模式步骤大全
- 简谈触摸板程序的实现(一)
- Linux命令行大全
- 前端开发:颜色代码速查表【英文颜色、HEX格式、RGB格式】
- 大学英语四级考试大纲
- unityShader物体表面流光效果
- 计算机怎么链接网络打印机,连接网络打印机,教您如何使用网络连接打印机
- readyState的值的含义
- 计算机word中的行间距在哪里设置,word怎么把所有行间距设置成22磅
- 关于Maven打包Java Web项目以及热部署插件Jrebel的使用
- EverNote开源协议-Android
- 小米2S手机开启开发者选项
热门文章
- 别去送死了,Selenium 爬虫暴露了几十个特征!
- html的侧边栏实现代码
- 数据中心(IDC)的UPS电池容量配置的计算方法
- i9500android操作系统跑流量,三星I9500刷机包 百度云ROM54公测版 因为专注 所以精进...
- Python有趣|寻找知乎最美小姐姐
- java.sql.SQLException: ORA-00904:标识符无效
- docker限制容器内存
- VMware12 虚拟机共享文件夹磁盘映射设置方法
- LaTeX自定义封面设计
- Labview和西门子PLC smart200 OPC通讯仪器串口通讯