webservice 概念+测试案例
webservice的概念?(一句话概括什么是WebService)
WebService是一种跨编程语言、跨操作系统平台的远程调用技术。远程调用技术:
远程调用是指一台设备上的程序A可以调用另一台设备上的方法B。比如:银联提供给商场的pos刷卡系统,商场的pos机转账调用的转账方法的代码其实是跑在银行服务器上的。再比如,amazon,天气预报系统,淘宝网,校内网,百度等把自己的系统服务以WebService服务的形式暴露出来,让第三方网站和程序可以调用这些服务功能,这样扩展了自己系统的市场占有率。
- 跨编程语言:是指服务端、客户端程序的编程语言可以不同
- 跨操作系统平台:是指服务端、客户端可在不同的操作系统上运行
- 从表面上看,WebService是指一个应用程序向外界暴露了一个能通过Web调用的API接口,我们把调用这个WebService的应用程序称作客户端,把提供这个WebService的应用程序称作服务端。
- 从深层上看,WebService是建立可互操作的分布式应用程序的新平台,是一个平台,是一套标准。它定义了应用程序如何通过Web实现互操作性,通过WebService标准对服务进行查询和访问。
===================================================================================================================================
为啥要使用webservice?
传统的socket,如上一篇socketserverr需要自己写数据的接收,数据的发送,数据的处理,数据的解析等等的信息;而webservice在开发的过程中同java开发一样,实现了对web socket的包装
1.测试目录
2.1 Server.java
package com.server;
import javax.xml.ws.Endpoint;
public class Server {
public static void main(String[] args) {
//发送webservice服务
//new WeatherInterfaceImpl()为实现类
//http://127.0.0.1:12345/weather http:id:端口/地址
//启动服务,浏览器端访问http://127.0.0.1:12345/weather?wsdl 会打开webservice的使用说明书
Endpoint.publish("http://127.0.0.1:12345/weather", new WeatherInterfaceImpl());
System.out.println("发布webservice服务");
}
}
2.2 WeatherIntrface.java
package com.server;
/**
* 天气查询服务接口
* @author xjj13
*
*/
public interface WeatherInterface {
//天气查询
public String queryWeather(String cityname);
}
2.3 WeatherIntrfaceImpl.java
package com.server;
import javax.jws.WebService;
/**
* 天气查询服务
* @author xjj13
*
*/
@WebService
public class WeatherInterfaceImpl implements WeatherInterface{
@Override
public String queryWeather(String cityname) {
//接受客户端发送过来的数据
System.out.println("from client..."+cityname);
String result="晴";
//向客户端返回天气查询结果
return result;
}
}
2.4服务端写好类后,启动服务,浏览器端访问http://127.0.0.1:12345/weather?wsdl 会打开webservice的使用说明书
访问url: http://127.0.0.1:12345/weather?xsd=1发现是自己写的方法
3.dos窗口进入下面目录 cd C:\java\02.eclipseWorkspace\01.test\webserviceweatherquery\src
执行如下命令:
wsimport -s . http://127.0.0.1:12345/weather?wsdl
就会生成下面红框圈注的内容
4.编写客户端 Client.java
package com.client;
import com.test.WeatherInterfaceImpl;
import com.test.WeatherInterfaceImplService;
/**
* webservice客户端
* @author xjj13
*
*/
public class Client {
public static void main(String[] args) {
//通过webservice的服务视图
WeatherInterfaceImplService weatherInterfaceImplService=new WeatherInterfaceImplService();
//通过视图得到服务端点
WeatherInterfaceImpl weatherInterfaceImpl=weatherInterfaceImplService.getWeatherInterfaceImplPort();
//可以通过服务端点调用webservice接口
//向服务端发送数据北京
String result=weatherInterfaceImpl.queryWeather("北京");
System.out.println("from server..."+result);
}
}
4.2启动客户端
webservice 概念+测试案例的更多相关文章
- webservice的测试案例
1.服务器端 服务器接口Test_service.java package com.xiaostudy; /** * @desc 服务器接口 * @author xiaostudy * */ publ ...
- Selenium(十四):自动化测试模型介绍、模块化驱动测试案例、数据驱动测试案例
1. 自动化测试模型介绍 随着自动化测试技术的发展,演化为了集中模型:线性测试.模块化驱动测试.数据驱动测试和关键字驱动测试. 下面分别介绍这几种自动化测试模型的特点. 1.1 线性测试 通过录制或编 ...
- Shiro 安全框架详解二(概念+权限案例实现)
Shiro 安全框架详解二 总结内容 一.登录认证 二.Shiro 授权 1. 概念 2. 授权流程图 三.基于 ini 的授权认证案例实现 1. 实现原理图 2. 实现代码 2.1 添加 maven ...
- js引出函数概念的案例
js引出函数概念的案例 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8&q ...
- Storm自带测试案例的运行
之前Storm安装之后,也知道了Storm的一些相关概念,那么怎么样才可以运行一个例子对Storm流式计算有一个感性的认识呢,那么下面来运行一个Storm安装目录自带的测试案例,我们的Storm安装在 ...
- 编写优美的GTest测试案例
http://www.cnblogs.com/coderzh/archive/2010/01/09/beautiful-testcase.html 使用gtest也有很长一段时间了,这期间也积累了一些 ...
- 使用Jmeter至WebService压力测试
使用Jmeter至WebService压力测试 目中我们使用了Jmeter对webservice进行了压力測试,Apache JMeter是Apache组织开发的基于Java的压力測试工具.用于对 ...
- nginx整合tomcat集群并做session共享----测试案例
最近出于好奇心,研究了一下tomcat集群配置,并整合nginx,实现负载均衡,session共享,写篇记录,防止遗忘.---------菜鸡的自我修炼. 说明:博主采用一个web项目同时部署到两台t ...
- robotframework+selenium搭配chrome浏览器,web测试案例(搭建篇)
这两天发布版本 做的事情有点多,都没有时间努力学习了,先给自己个差评,今天折腾了一天, 把robotframework 和 selenium 还有appnium 都研究了一下 ,大概有个谱,先说说we ...
随机推荐
- ndarray笔记
Numpy的介绍 1. Ndarray:N-dimensional array, N维数组 2. 一种由相同类型的元素组成的多维数组,元素数量是事先指定好的 例:建立Ndarray多维数组 nd ...
- Eureka 注册中心一直报Connect to localhost:8761 time out 的问题
忽略了配置eureka.client.service-url.defaultZone而导致的异常,重新覆盖配置就好 client: fetch-registry: false register-wit ...
- Pod——状态和生命周期管理及探针和资源限制
一.什么是Podkubernetes中的一切都可以理解为是一种资源对象,pod,rc,service,都可以理解是 一种资源对象.pod的组成示意图如下,由一个叫”pause“的根容器,加上一个或多个 ...
- javascript移动端 电子书 翻页效果
1.后端给一长串的纯文本 2.前端根据屏幕的高度,将文本切割为 n 页 3.使用插件 turn.js 将切割好的每页,加上翻书效果 <!DOCTYPE html> <html lan ...
- 树节点递归删除--service层
@Service public class ContentCategoryServiceImpl extends BaseServiceImpl<ContentCategory> impl ...
- java 框架-分布式文件管理系统1FastDFS
https://www.cnblogs.com/chiangchou/p/fastdfs.html
- AI 公司与比赛
科大讯飞 网站:https://www.iflytek.com/ 比赛:http://challenge.xfyun.cn/2019/ AI 大学:https://www.aidaxue.com/ 华 ...
- 最近发现了一篇讲解Vue的虚拟DOM,diff很棒的文章,特定记录转载一下
本文章是转载的,为了方便以后复习,特地记录一下.他人请去原地址观看!!! 文章原地址:https://blog.csdn.net/m6i37jk/article/details/78140159 作者 ...
- css滑动门技术
滑动门的核心技术: 为了使各种特殊形状的背景能够自适应元素中文本内容的多少,以使自由拉伸滑动 利用css精灵(主要是背景位置)和盒子padding撑开宽度,以便适应不同字数的导航栏 一般经典布局 &l ...
- EF方式增、删、改、查(基本使用)
右击项目——添加——新建项——数据(C#)——选择ADO.NET实体数据模型——点击添加——然后根据实体数据模型向导来一步步的做. 用到的表 using System; using System.Da ...