webservice的学习
来源:互联网 发布:程序员图片 编辑:程序博客网 时间:2024/06/02 05:38
1.什么是wenservice?
直译为 网络服务 ,是RPC的一种实现方式.
其目的为:通过客户端访问服务器获取数据,webservice采用的是XML
RPC(Remote Procedure Call Protocol)--远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
2.使用场景?
1).有权威机构提供的第三方小功能,比如:天气预报
2),多种客户端整合
3).异构系统整合
3.常用方案:搭建一根总线——ESB(企业服务总线),如下图:
ESB的作用:对企业里面的SOA(面向服务的架构)服务的调用提供一个框架和简便的方法。
3.具体实现方法: 暴露服务、查询服务、调用服务传输数据。
1),暴露出一个服务(接口)出去,并且做一个描述WSDL
WSDL(WebServicesDescriptionLanguage):WS的描述语言,告诉总线自己暴露了哪些服务
2),查询:找到UUDI(类似于DNS),用于服务的注册,查询
UUDI(WebServicesDescriptionLanguage):一种目录服务,用于集成,发现,集成协议.
3),传输数据:定义数据传输规范,一般都采用XML传递,把对象及XML进行转换由SOAP规范.
SOAP(Simple Object Access Protocol):简单对象访问协议,轻量.简单.基于XML的协议
总结:WS是一种基于HTTP协议与XML技术,并且使用WSDL描述和使用SOAP协议传输的异构系统解决方案
必备条件:1.WSDL文件,服务描述
2.对象与XML转换(数据)
WS与SOA的区别:
web Service是技术规范,而SOA是设计原则,一种架构模式
WSDL,UDDI.SOAP是SOA基础的基础部件
WSDL:用来描述服务
UDDI:用来注册和查找服务
SOAP:作为传输层,用来在客户端和服务器端之间传送消息
4.案例解析(基于JDK的WS开发----服务端部分)
需求:做一个HellowWorld来提供天气服务
1).创建WS服务类
@WebService //标记为WS服务类@SOAPBinding(style=Style.RPC) //声明访问规范public class WeatherService {//把数据放在本地,使用Map安装private Map<String, String> weather = new HashMap<String,String>();//初始化两条数据public WeatherService(){weather.put("cd", "6~12");weather.put("gz", "17~22");}@WebMethod //标记为需要暴露的WS服务方法public String getWeather(String city){if(city!=null){String we = weather.get(city);if(we!=null){return we ; }return "unknown!";}return "error!";}}
2).发布服务,创建类 Publish.java发布服务的三个条件:address,implementor实现类,
public class Publish {public static void main(String[] args) {//声明服务访问地址String address ="http://192.168.1.104:9527/weather";//初始化服务类,指打了WebService标签的类Object implementor = new WeatherService();Endpoint.publish(address, implementor);System.err.println("服务发布成功 ...");}}测试是否发布服务成功:访问 http://192.168.1.104:9527/weather 或者http://192.168.1.2:9527/weather?wsdl3):发布成功后的WSDL文件详解:
4.基于JDK的WS开发----客户端部分
1).若已经配置(详情见http://blog.csdn.net/gs932899178/article/details/53701346 )了 CXF_HOME 环境变量的情况下:
在 包文件的位置通过命令生成代码 ---------------------- wsimport <参数> [ws发布的url] (‘<>’中为选填,‘[]’中为必填)
示例: wsimport -s . http://192.168.1.104:9527/weather?wsdl
2).根据WSDL文件,在java客户端调用WebService
public class Call {public static void main(String[] args) {//初始化接口,客户端主要是消费接口所提供的服务//创建实现类实例,调用get..Port方法通过binding这个桥梁初始化接口WeatherService ws = new WeatherServiceService().getWeatherServicePort();//调用服务,得到天气信息String weather = ws.getWeather("cd");System.out.println(weather);}}
0 0
- webservice的学习总结
- WebService的学习一
- webService的学习基础
- WebService的学习笔记
- webservice的学习
- axis调用webservice的学习
- webservice 总结的学习贴
- 【项目学习】Webservice的介绍
- 学习WebService的体会一
- 学习WebService的体会二
- WebService的学习笔记00
- webservice学习之AXIS初学笔记--创建自己的webservice
- WebService学习:使用Xfire创建WebService程序的过程
- webservice学习一之原生webservice的创建
- WebService学习系列(二)------构造自己的WebService服务器
- WebService学习总结(一)——WebService的相关概念
- WebService学习总结(一)——WebService的相关概念
- WebService学习总结(一)——WebService的相关概念
- ruby:数组人生,患得患失
- ubuntu vmware tools
- Android Studio 快捷键使用
- jar 命令打包生成的jar文件内部的目录结构
- MySQL的一个安装坑
- webservice的学习
- 使用PreperedStatement预编译对象防止sql注入简单代码
- linear-gradient用法
- Spring+SpringMVC+MyBatis整合实例
- 被风吹过的夏天,与往事和解。
- Atitit ABI FFI 的区别与联系 attilax总结
- Atitit ABI FFI 的区别与联系 attilax总结
- Android显示和隐藏密码的自定义EditView
- Main() 方法的参数