Web Service 的介绍及入门程序
来源:互联网 发布:测试网络摄像头软件 编辑:程序博客网 时间:2024/05/17 00:09
1.什么是web service?
Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。(简说:web service 就是使用http传输SOAP协议的数据的一种远程调用技术)
2.web service 优缺点
优点:
1.跨防火墙。
发送方式采用http的post发送,http的默认端口是80,防火墙默认不拦截80
2.跨平台。
采用XML格式封装数据,XML是跨平台的,所以web service也是的
3.面向对象。
缺点:
1.性能较低。
采用XML格式封装数据,所以在传输过程中,要传输额外的标签,随着SOAP协议的不断完善,标签越来越大,导致webservice性能下降
3.应用场景
主要用于软件的集成和复用
3.1、适用场景
1.发布一个服务(对内/对外),不考虑客户端类型,不考虑性能,建议使用webservice
2.服务端已经确定使用webservice,客户端不能选择,必须使用webservice
3.2、不适用场景
1.考虑性能时不建议使用webservice
2.同构程序下不建议使用webservice,比如java用RMI,不需要翻译成XML的数据
4.web service 入门程序
4.1需求
1.服务端:发布一个天气查询服务,接收客户端城市名,返回天气数据给客户端
2.客户端:发送城市名称给服务端,接收服务端的返回天气数据,打印
4.2环境
jdk、IDEA
4.3实现
4.3.1服务端
1.创建SEI(Service Endpoint Interface)接口,本质上就是Java接口
public interface WeatherInterface { public String queryWeather(String cityName);}
2.创建SEI实现类,在实现类上加入@WebService
@WebServicepublic class WeatherInterfaceImpl implements WeatherInterface { @Override public String queryWeather(String cityName) { System.out.println("from client..."+cityName); String weather = "晴"; return weather; }}
3.发布服务,Endpoint发布服务,publish方法,两个参数:1.服务地址;2.服务实现类
public class WeatherServer { public static void main(String[] args) { //Endpoint发布服务 //参数解释 //1.address - 服务地址 //2.implementor - 实现类 Endpoint.publish("http://127.0.0.1:12345/weather", new WeatherInterfaceImpl()); }}
4.测试服务是否发布成功,通过阅读使用说明书,确定客户端调用的接口、方法、参数和返回值存在,证明服务发布成功。
在浏览器输入:http://127.0.0.1:12345/weather?wsdl,出现一个说明书,遵循从下往上看,查看方法是否发布
4.3.2客户端
1.根据wsimport命令生成客户端代码
wsimport -s . http://127.0.0.1:12345/weather?wsdl,生成的客户端代码可以复制到项目中去,不要修改生成的代码。
2.之后我们新建一个java,根据使用说明书,使用客户端代码调用服务端
第一步:创建服务视图,视图是从service标签的name属性获取
第二步:获取服务实现类,实现类从portType的name属性获取
第三步:获取查询方法,从portType的operation标签获取
public class WeatherClient { public static void main(String[] args) { //创建服务视图 WeatherInterfaceImplService weatherInterfaceImplService = new WeatherInterfaceImplService(); //获取服务实现类 WeatherInterfaceImpl weatherInterfaceImpl = weatherInterfaceImplService.getPort(WeatherInterfaceImpl.class); //调用查询方法,打印 String weather = weatherInterfaceImpl.queryWeather("北京"); System.out.println(weather); }}
最终结果:输出“晴”
- Web Service 的介绍及入门程序
- Web Service的介绍
- Web Service的介绍
- Web service 的入门
- Web service 的入门
- 【入门篇】Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布
- 【入门篇】Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布
- 【入门篇】Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布
- 【入门篇】Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布
- RESTful web Service介绍及参数详解
- BPEL-基于WEB Service的工作流介绍
- Spring的Web-service和JAXB介绍
- Web Service依赖的jar包介绍
- Spring的Web-service和JAXB介绍
- WSDL---web service的入门学习
- 传智播客--Web Service之基本概念,axis自带案例介绍和第一个Web Service程序
- Web Service之基本概念,axis自带案例介绍和第一个Web Service程序
- Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布
- IntelliJ Idea 常用快捷键列表
- eclipse.ini配置文件
- ld: framework not found ReactiveCocoa clang: error: linker command failed with exit code 1
- 去除快捷方式小箭头
- jdk配置
- Web Service 的介绍及入门程序
- 商品展示(二)
- android-原生图片下载的对比
- 关于nil和 null和NSNull的区别及相关问题
- You've implemented -[<UIApplicationDelegate> application:didReceiveRemoteNotification:fetchCompletio
- es6的 ... 三点运算符的用法
- Android相框合成图片抠图
- Android开源特效常用链接大集合
- JAXB转XML: 错误 class nor any of its super class is known to this 的处理