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 概念+测试案例的更多相关文章

  1. webservice的测试案例

    1.服务器端 服务器接口Test_service.java package com.xiaostudy; /** * @desc 服务器接口 * @author xiaostudy * */ publ ...

  2. Selenium(十四):自动化测试模型介绍、模块化驱动测试案例、数据驱动测试案例

    1. 自动化测试模型介绍 随着自动化测试技术的发展,演化为了集中模型:线性测试.模块化驱动测试.数据驱动测试和关键字驱动测试. 下面分别介绍这几种自动化测试模型的特点. 1.1 线性测试 通过录制或编 ...

  3. Shiro 安全框架详解二(概念+权限案例实现)

    Shiro 安全框架详解二 总结内容 一.登录认证 二.Shiro 授权 1. 概念 2. 授权流程图 三.基于 ini 的授权认证案例实现 1. 实现原理图 2. 实现代码 2.1 添加 maven ...

  4. js引出函数概念的案例

    js引出函数概念的案例   1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8&q ...

  5. Storm自带测试案例的运行

    之前Storm安装之后,也知道了Storm的一些相关概念,那么怎么样才可以运行一个例子对Storm流式计算有一个感性的认识呢,那么下面来运行一个Storm安装目录自带的测试案例,我们的Storm安装在 ...

  6. 编写优美的GTest测试案例

    http://www.cnblogs.com/coderzh/archive/2010/01/09/beautiful-testcase.html 使用gtest也有很长一段时间了,这期间也积累了一些 ...

  7. 使用Jmeter至WebService压力测试

    使用Jmeter至WebService压力测试   目中我们使用了Jmeter对webservice进行了压力測试,Apache JMeter是Apache组织开发的基于Java的压力測试工具.用于对 ...

  8. nginx整合tomcat集群并做session共享----测试案例

    最近出于好奇心,研究了一下tomcat集群配置,并整合nginx,实现负载均衡,session共享,写篇记录,防止遗忘.---------菜鸡的自我修炼. 说明:博主采用一个web项目同时部署到两台t ...

  9. robotframework+selenium搭配chrome浏览器,web测试案例(搭建篇)

    这两天发布版本 做的事情有点多,都没有时间努力学习了,先给自己个差评,今天折腾了一天, 把robotframework 和 selenium 还有appnium 都研究了一下 ,大概有个谱,先说说we ...

随机推荐

  1. Python【HTML基础】

    HTML基础 HTML(Hyper Text Markup Language)超文本标记语言 #HTML是一种用来描述网页的语言,HTML之于网页就好比建筑图纸之于建筑 +++++++++++++++ ...

  2. Python学习5——抽象,涉及抽象和结构、函数的自定义、参数、作用域、递归

    此处将抽象和结构.自定义函数.参数的使用.作用域.递归放在一起学习,看起来很怪是不是? 但实际上这几者之间是有紧密联系的,不然Python基础教程(第三版)的作者为什么会把它们放在一起哪?手动滑稽 好 ...

  3. Ubuntu截图工具Flameshot

    今天来介绍一款Ubuntu下的截图工具,名叫Flameshot. 安装 Flameshot的安装很简单. 命令行安装 sudo apt-get install flameshot 一条命令搞定! 软件 ...

  4. 【数据结构】Tournament Chart

    Tournament Chart 题目描述 In 21XX, an annual programming contest, Japan Algorithmist GrandPrix (JAG) has ...

  5. Scratch 母鸡保护鸡蛋

    今天我们一起实现一个“母鸡保护鸡蛋”的小游戏 具体思路是这样滴: 1.鸡蛋会不断的从右往左移动: 2.当母鸡快碰到鸡蛋的时候,按下“空格键”让母鸡跳跃起来: 3.如果母鸡落下没碰到鸡蛋,加一分: 4. ...

  6. qt聊天室bug-- error: no matching function for call to 'Ui::Widget::setupUi(Widget*)' ui->setupUi(this); ^

  7. jq获取元素偏移量offset()

    解释: 1 获取匹配元素在当前视口的相对偏移. 2 返回的对象包含两个整型属性:top 和 left demo1: 获取top与left var aaa = $(".aaa "); ...

  8. (二十四)JSP标签之基本标签(<jsp:标签名>)

    一.常用标签 1.1 jsp中标签一共有8中,其中常用的有6中,本文将介绍这6种常用的标签. 1.2 6种标签 1. <jsp:include> <jsp:include>标签 ...

  9. C#项目中窗体的ShowDialog()和show()的区别

    ShowDialog()弹出的窗体为模式化窗体: show()弹出的窗体为非模式化窗体: 模式化窗体与非模式化窗体的区别: 模式化窗体会使程序中断,直到关闭窗体: 打开窗体后不能替换到其他窗体: 子窗 ...

  10. 自定义centos

    目录 自定义centos 1. 为什么要自定义centos 2. 自定义centos步骤 自定义centos 1. 为什么要自定义centos 在使用官网的 centos镜像,只有200m,很小,但是 ...