WebService概述和CXF入门小程序
来源:互联网 发布:php 上传文件进度 编辑:程序博客网 时间:2024/05/21 05:21
一. 什么是WedService?
WebService不是框架, 甚至不是一种技术, 而是一种跨平台,跨语言的规范, WebService的出现是为了解决这样的需求场景: 不同平台, 不同语言所编写的应用之间相互调用.
二. WedService有什么用?
WebService可以集中解决以下问题:
1. 远程调用
2. 跨平台调用
3. 跨系统调用
那么WebService在企业中有什么用呢?
1. 同一个公司新旧系统的整合.
2. 不同公司的业务整合: 业务的整合就要带来不同公司的系统整合, 而不同公司的系统可能存在平台不同, 语言不同的问题.
3. 内容聚合: 一个应用需要提供天气预报, 股票行情,黄金行情等, 内容聚合的应用需要调用大量不同平台, 不同语言编写的应用的方法.
三. 面向服务架构(SOA)
1. 什么是面向服务架构: service1, service2, service3 - 所有组件都是"即插即用"的.
IBM提倡的SOA架构: 希望以"组装电脑"的方式来开发软件
① 各种提供服务的组件
② 企业服务总线(Enterpise Service Bus - ESB)
2. CXF号称是SOA框架
四. WebService三大技术基础
1. WSDL: web service definition language - web service定义语言
- 通俗地说, WSDL文档描述了Web Service如下三个方面:
- WHAT: 该Web Service 包含什么操作
- HOW: 该Web Service的操纵应该怎样调用
- WHERE: 该Web Service的服务地址
2. SOAP: Simple Object Access Protocol: 简单对象访问协议
一次web service的调用, 其实并不是方法调用, 而是发送SOAP消息(即xml文档片段)
3. UDDI: Universal Description, Discovery and Integration
UDDI 是一种目录服务,企业可以使用它对 Web services 进行注册和搜索
※ 调用一次Web Service的本质:
1. 客户端把调用方法参数, 转换成XML文档片段(SOAP消息 - input消息) - 该文档片段必须符合WSDL定义的格式
2. 通过网络, 把xml文档片段传给服务器
3. 服务器接收到xml文档片段
4. 服务器解析XML文档片段, 提取其中的数据, 并把数据转换调用Web Service所需要的参数值
5. 服务器端执行方法
6. 把执行方法得到的返回值, 再次转换为生成为XML文档片段(SOAP消息 - output消息)- 该文档片段必须符合WSDL定义的格式
7. 通过网络, 把xml文档片段传给客户端
8. 客户端接受到xml文档片段
9. 客户端解析xml文档片段, 提取其中的数据, 并把数据转换调用Web Service的返回值
从上面调用本质来看, 要一个语言支持web service唯一的要求是: 该语言支持xml文档的解析, 生成, 支持网络传输
五. 使用CXF开发WebService程序
1. 环境准备:
① 下载Apache cxf2.2.10环境: http://download.csdn.net/detail/zdp072/7429645
② 所需Jar包:
cxf-2.2.10.jar
geronimo-servlet_2.5_spec-1.2.jar
jetty-6.1.21.jar
jetty-util-6.1.21.jar
wsdl4j-1.6.2.jar
XmlSchema-1.4.5.jar
③ 配置path环境变量: G:\Java_lib\apache\cxf\apache-cxf-2.2.10\bin (cxf的解压目录)
命令行输入: wsdl2java查看是否配置成功
2. 开发服务端:
① 开发一个Web Service业务接口, 该接口要用@WebService修饰
@WebServicepublic interface HelloService {public String sayHello(String name);}
② 开发一个Web Service实现类, 实现类也需要用@WebService修饰
@WebService(endpointInterface="com.zdp.service.HelloService")public class HelloServiceImpl implements HelloService {@Overridepublic String sayHello(String name) {return name + ", 您好! 现在的时间是: " + new Date();}}
③ 使用Endpoint类的静态方法发布WebService
public class MyServer {public static void main(String[] args) {HelloService helloService = new HelloServiceImpl();Endpoint.publish("http://localhost/sayHello", helloService);System.out.println("Web Service 暴露成功");}}
注: 每个Web Service组件需要2个部分: 接口和实现类
④ 运行MyServer(CXF内置了一个Jetty Web服务器), 在浏览器中输入以下地址: http://localhost/sayHello?wsdl , 如果WebService暴露成功将会在浏览器里看到一个xml文件
3. 开发客户端
① 打开命令行, cd进入客户端的src目录, 运行: wsdl2java http://localhost/sayHello?wsdl , 目的就是通过暴露的wsdl生成Java类
② 写一个客户端测试类:
public class MyClient {public static void main(String[] args) {HelloServiceImplService factory = new HelloServiceImplService();HelloService helloService = factory.getHelloServiceImplPort(); // 返回一个代理System.out.println(helloService.sayHello("zhangsan"));}}
③ 代码结构图及下载地址: http://download.csdn.net/detail/zdp072/7429637
- WebService概述和CXF入门小程序
- WebService之CXF框架入门小程序
- Webservice介绍,CXF入门程序
- 【WebService】2.CXF概述和使用CXF开发WebService服务器端
- WebService初级入门小程序
- WebService第二课 CXF功能概述_CXF发展历史和使用CXF开发WebService服务器端
- CXF发布webservice入门
- webservice简介&CXF入门
- 使用CXF发布和调用webservice之HelloWorld入门
- 使用CXF发布和调用webservice之HelloWorld入门
- 使用CXF发布和调用webservice之HelloWorld入门
- 使用CXF发布和调用webservice之HelloWorld入门
- 使用CXF发布和调用webservice之HelloWorld入门
- 使用CXF发布和调用webservice之HelloWorld入门
- WebService和Cxf框架
- 使用spring和cxf创建WebService测试程序
- (四)WebService之CXF和Web程序的整合
- CXF入门小案例
- MINA2.0用户手册中文版--第一章 MINA2.0入门
- NSTimer用法小结
- 11
- codeforce 6B dfs
- 12
- WebService概述和CXF入门小程序
- 516原版金蟾捕鱼,李逵劈鱼,大闹天宫,蛇形亿年,保卫钓鱼岛捕鱼,网狐6603笑傲江湖免费下载
- 11g bbed的安装
- JS的DOM操作
- Java中Lock的使用
- 13
- 仿射变换 affine transformation
- hibernate 大对象类型的hibernate映射
- 手势滑动删除ListView