初识Web 服务(即Web Service)
一、什么是Web服务
简单来说就是在Internet上提供的这种服务,我们称这种服务为Web服务。
二、Web服务的主要目标?
是支持跨平台的可互操作性。
三、Web服务的优势

四、Web服务提供了一系列标准,定义了应用在Web上机进行互操作的规范,因此,Web服务的3个核心操作都是基于这些规范完成的。
三要素:
WSDL:WebService Description Language ---Web服务描述语言。
通过xml形式说明服务在什么地方----地址。
通过xml形式说明服务提供什么样的方法---如何调用。
SOAP:Simple Object Access Protocol 简单对象访问协议
SOAP作为一个基于XML语言的协议用于网上传输数据
SOAP=HTTP基础+XML数据。
UDDI: Universal Description Discovery and Integration统一描述发现和集称协议。
五、使用JAX-WS发布服务
要发布一个Web服务供第三方使用,我们通过JAX-WS来完成实现查看天气。
1、定义一个实体
package cn.yxj.publishEntity; import java.util.Date; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name="TemperatureInfo")
public class TemperatureInfo { public TemperatureInfo() {
}
public TemperatureInfo(String city, Date date, int min, int max,
int average, String desc) {
this.city = city;
this.date = date;
this.min = min;
this.max = max;
this.average = average;
this.desc = desc;
}
private String city;//城市
private Date date;//日期
private int min;//最低温度
private int max;//最高温度
private int average;//平均温度
private String desc;//描述 public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public int getMin() {
return min;
}
public void setMin(int min) {
this.min = min;
}
public int getMax() {
return max;
}
public void setMax(int max) {
this.max = max;
}
public int getAverage() {
return average;
}
public void setAverage(int average) {
this.average = average;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
2、设计并实现服务接口。
package cn.yxj.publish;
import java.util.Date;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebService;
import cn.yxj.publishEntity.TemperatureInfo; /**
* 发布的天气接口
* @author
*
*/
@WebService(targetNamespace="http://www.bdqn.cn/ws/weather")
public interface WeatherService {
@WebMethod
List<TemperatureInfo> getWeathers(String city,List<Date> dates);
}
3、定义一个实现类来实现接口
package cn.yxj.publish.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebService;
import cn.yxj.publish.WeatherService;
import cn.yxj.publishEntity.TemperatureInfo;
@WebService(targetNamespace="http://www.bdqn.cn/ws/weather")
public class WeatherServiceImpl implements WeatherService{
@WebMethod
public List<TemperatureInfo> getWeathers(String city, List<Date> dates) {
List<TemperatureInfo> list=new ArrayList<TemperatureInfo>();
for (Date date : dates) {
list.add(getTemperature(city, date));
}
return list;
} @WebMethod(exclude=true)
public TemperatureInfo getTemperature(String city,Date date){
return new TemperatureInfo(city,date,,,,"晴");
} }
4、发布天气的服务
package cn.yxj.server; import javax.xml.ws.Endpoint; import cn.yxj.publish.impl.WeatherServiceImpl;
public class Server {
protected Server() throws Exception{
System.out.println("启动服务....");
//定义服务实现类
WeatherServiceImpl weatherServiceImpl=new WeatherServiceImpl();
//定义服务发布网址
/*String address="http://localhost:8084/WeatherService";*/
String address="http://192.168.15.40:8084/WeatherService";//让别人访问自己的web
//发布服务
Endpoint.publish(address, weatherServiceImpl);
} public static void main(String[] args) throws Exception {
new Server();
System.out.println("服务准备就绪......");
Thread.sleep(**);
System.out.println("服务退出......");
System.exit();//关闭服务器
//System.out.println(http://localhost:8084/WeatherService?xsd=1);
}
}
简单的列子带大家配置Web Service 的服务。
初识Web 服务(即Web Service)的更多相关文章
- 【转】简述什么是Web服务(Web Service)技术?
Web Service 是在 Internet 上进行分布式计算的基本构造块,是组件对象技术在 Internet 中的延伸,是一种部署在Web 上的组件.它融合了以组件为基础的开发模式和 ...
- Web服务(Web Service)相关概念
1.概述 Web服务技术(Web Service )是一种面向服务的架构技术,通过标准的Web协议提供服务,保证不同平台的应用服务能够互相操作. 因为Web服务公布的数据基于XML格式和 SOAP协议 ...
- Python flask 基于 Flask 提供 RESTful Web 服务
转载自 http://python.jobbole.com/87118/ 什么是 REST REST 全称是 Representational State Transfer,翻译成中文是『表现层状态转 ...
- 使用 ServiceStack 构建跨平台 Web 服务
本文主要来自MSDN杂志<Building Cross-Platform Web Services with ServiceStack>,Windows Communication Fou ...
- SOAP Web 服务介绍
已经跨入 2015 年,当今最为常见的两种 Web 服务类型分别是: REST 和 SOAP .不过,从趋势来看,越来越多人已经开始使用 REST 风格的 Web 服务.而 SOAP 大多也开始或已经 ...
- WCF:为 SharePoint 2010 Business Connectivity Services 构建 WCF Web 服务(第 1 部分,共 4 部分)
转:http://msdn.microsoft.com/zh-cn/library/gg318615.aspx 摘要:通过此系列文章(共四部分)了解如何在 Microsoft SharePoint F ...
- Webservices-1.web服务定义简介
一.WEB服务定义(摘自维基百科)详情:http://zh.wikipedia.org/wiki/Web%E6%9C%8D%E5%8A%A1 Web服务是一种服务导向架构的技术,通过标准的Web协议提 ...
- 用TLS实现安全TCP传输及配置和访问https的web服务(转)
tls相关 大致原理 为了让两个之间实现安全传输,(我们把服务端统一叫做TcpServer,客户端统一叫做TcpClient),TcpServer在listen完了accept之后要用一个证书来声明自 ...
- Azure机器学习入门(四)模型发布为Web服务
接Azure机器学习(三)创建Azure机器学习实验,下一步便是真正地将Azure机器学习的预测模型发布为Web服务.要启用Web服务发布任务,首先点击底端导航栏的运行即"Run" ...
随机推荐
- 转 - ubuntu apache2下目录结构
ubuntu apache2下目录结构 原文:http://blog.csdn.net/jibcy/article/details/8060651 在Windows下,Apache的配置文件通常只有一 ...
- C++11模板类使用心得
1.推荐使用std::shared_ptr<TaskT>代替指针TaskT*使用,shared_ptr是一种智能指针,能自主销毁释放内存,在c++11中被引入,在多线程编程中有很大的用处, ...
- IOS开发之控件篇UINavigationController第二章 - 标题
1.什么是标题(Title) NavigationController里面的viewcontroller,每一页都会有一个标题,如图3r就是这个页面的标题 2. 如何设置标题 一般都会在这个Navig ...
- rabbitMQ第二篇:java简单的实现RabbitMQ
前言:在这里我将用java来简单的实现rabbitMQ.下面我们带着下面问题来一步步的了解和学习rabbitMQ. 1:如果消费者连接中断,这期间我们应该怎么办 2:如何做到负载均衡 3:如何有效的将 ...
- JTMz换路径导致MySQL服务不能启动的问题
问题: JTMz解压到我的机器上,运行一次后,把服务停止了,然后移到了另外一个路径,JTMz中自带的MySQL服务启动不起来了. 解决: 在注册表中修改 HKEY_LOCAL_MACHINE\SYST ...
- ASP.NET MVC中使用FluentValidation验证实体
1.FluentValidation介绍 FluentValidation是与ASP.NET DataAnnotataion Attribute验证实体不同的数据验证组件,提供了将实体与验证分离开来的 ...
- Uvaoj 10048 - Audiophobia(Floyd算法变形)
1 /* 题目大意: 从一个点到达另一个点有多条路径,求这多条路经中最大噪音值的最小值! . 思路:最多有100个点,然后又是多次查询,想都不用想,Floyd算法走起! */ #include< ...
- AutoMapper小结
一些orm框架,在用到Entity的时候有一些开源代码用到了automapper(如:nopcommence),将数据对象转成DTO.比如在ORM中,与数据库交互用的Model模型是具有很多属性变量方 ...
- 轻松自动化---selenium-webdriver(python) (十二)
本节重点: l 键盘按键用法 l 键盘组合键用法 l send_keys() 输入中文运行报错问题 键盘按键键用法: #coding=utf-8 from selenium import webdri ...
- SQL中利用DMV进行数据库性能分析
相信朋友对SQL Server性能调优相关的知识或多或少都有一些了解.虽然说现在NOSQL相关的技术非常的火热,但是RMDB(关系型数据库)与NOSQL是并存的,并且适用在各种的项目中.在一般的企业级 ...