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 ...
随机推荐
- QLineEdit的信号函数
QLineEdit一共有6个信号函数,并不多,很好理解. ·void cursorPositionChanged( intold, intnew ) 当鼠标移动时发出此信号,old为先前的位置,new ...
- Foxmail7.2的账号密码的备份与恢复
1:备份: 1.0 找到Foxmail7.2的安装的位置,例如我的就是 D:\Program Files\Foxmail 7.2; 然后在路径下找到Storage文件夹然后备份里边的内容; 邮箱账号备 ...
- Java 之 可变参数
可变参数 在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化成如下格式: 修饰符 返回值类型 方法名(参数类型... 形参名){ } 其实这个书写完全等价 ...
- 【Zookeeper】 在Java中的操作
一.基本功能演示 1.1 Maven依赖信息 1.2 代码演示 方法说明 1.3 创建Zookeeper节点信息 二.Watcher 2.1 什么是Watcher接口 2.2 Watcher代码 一. ...
- MySQL菜鸟入门“秘籍”
一.MySQL简介 1.什么是数据库 ? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不 ...
- jajx 传参 需要 判断的 条件
1.有没有权限. 2.数据类型 对不对 例如 id ,page 传过来时是str 类型, view中处理时需要转换成 int类型. 如果 不能转 就会报错.. 3.查询数据.数据不存在也要报错... ...
- 微信中浏览器支持input调用摄像头和只能上传图片
<input type="file" capture="camera" accept="image/*" />
- MySQL进阶2 sql选择语句 where
与SQL语句一致 #进阶2: 条件查询 /* 语法 select 查询列表 #3 from 表名 #1 where 筛选条件; #2 分类: 1.按条件表达式进行筛选 > < = != & ...
- Java基础 String 裸暴力算法- 五个小练习
之间的博客,承上启下: Java基础 String/StringBuff 常用操作方法复习/内存分析 Java数组直接选择排序.sort()排序 Java基础 String 算法 - 五个练 ...
- 【ZZNU-oj-2116:人间不值得】(1亿以内的货币拼音转数值求折扣价原价)--hash+String大法好+字符串处理+超大暴力模拟题
B : 人间不值得 概览问题列表状态排名编辑 Progress Bar 时间限制:1 Sec 内存限制:256 MiB提交:146 答案正确:12 提交 编辑 题目描述 家缠万贯来几时,我今停杯一问之 ...