Web Service学习-CXF开发Web Service实例demo(一)
Web Service是什么?
Web Service不是框架。更甚至不是一种技术。
而是一种跨平台,跨语言的规范
Web Service解决什么问题:
为了解决不同平台,不同语言所编写的应用之间怎样调用问题。比如。有一个C语言写的程序。它想去调用java语言写的某个方法。
集中解决:1,远程调用 2。跨平台调用 3,跨语言调用
实际应用:
1。同一个公司的新,旧系统的整合。Linux上的java应用,去调用windows平台的C应用
2,不同公司的业务整合。业务整合就带来不同公司的系统整合。不同公司的系统可能存在平台不同,语言不同的问题
3,内容聚合。一个应用,比方须要提供,天气预报,股票行情,黄金行情等。
CXF与Web Service的关系
CXF是apache旗下的开源框架,由Celtix+ XFire这两门经典的框架合成。是一套很流行的web service框架。
CXF方式实现Web Service服务demo
1,配置环境变量
在CLASSPATH中加入E:\apache-cxf-2.6.2\lib
新建CXF_HOMEE:\apache-cxf-2.6.2
在PATH中加入 %CXF_HOME%\bin
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
2。使用CXF开发Web Service开发server端
整个项目的文件夹结构(普通java项目):
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
接口:
package com.tgb.service; import javax.jws.WebService; @WebService
public interface HelloWorld{ public String sayHi(String name); }
实现类:
package com.tgb.service.impl; import java.util.Date; import javax.jws.WebService; import com.tgb.service.HelloWorld; @WebService(endpointInterface="com.tgb.service.HelloWorld",serviceName="HelloWorldImpl")
public class HelloWorldImpl implements HelloWorld{ public String sayHi(String name) { return name+"您好! 如今时间为:"+new Date();
} }
測试client:
package com.tgb.client; import javax.xml.ws.Endpoint; import com.tgb.service.HelloWorld;
import com.tgb.service.impl.HelloWorldImpl; public class ServerMain { public static void main(String[] args){ HelloWorld hw=new HelloWorldImpl();
//调用endpoint的publish方法,来公布web service
Endpoint.publish("http://192.168.24.215/hjy",hw);
System.out.println("Web Service暴露成功");
}
}
启动程序:
查看wsdl
3,使用CXF开发WebServiceclient
运行例如以下命令(找到webService的client的工作空间运行)
刷新client项目,可看到例如以下生成的代码:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
编写client调用代码:
package hjy; import com.tgb.service.HelloWorld;
import com.tgb.service.impl.HelloWorldImpl; public class ClientMain { public static void main(String[] args){
HelloWorldImpl factory=new HelloWorldImpl();
//此处返回的仅仅是远程Web Service的代理
HelloWorld hw=factory.getHelloWorldImplPort();
System.out.println(hw.sayHi("hejingyuan"));
}
}
运行结果:
hejingyuan您好!如今时间为:TueJul 28 14:09:07 CST 2015
总结:
使用CXF开发Web Service共同拥有例如以下几个步骤:
1,server端
(1)开发一个Web Service业务接口。
该接口要用@WebService修饰
(2)开发一个Web Service业务实现类。该实现类也须要用@WebService修饰
(3)公布Web Service
2,client
(1)调用CXF提供的wsdl2java工具,依据WSDL文档生成对应的java代码。
WSDL-Web Service Definition Language
不论什么语言实现了Web Service,都须要提供,并暴露WSDL文档
(2)找到wsdl2java所生成类中,一个继承了Service的类
该类的实例可当成工厂来使用
(3)调用Service子类的实例的getXxxPort方法。返回远程Web Service的代理
Web Service学习-CXF开发Web Service实例demo(一)的更多相关文章
- Web Service学习-CXF开发Web Service的权限控制(二)
Web Service怎样进行权限控制? 解决思路:server端要求input消息总是携带实username.password信息,假设没实username和password信息.直接拒绝调用 解决 ...
- 使用CXF开发Web Service服务
1.使用CXF开发Web Service服务端 1.1 开发一个Web Service业务接口,该接口要用@WebService修饰 (1)创建一个Java项目MyServer (2)在MyServe ...
- Web Service学习之一:Web Service原理
一.定义 Web Service 不是框架也不是技术 而是解决远程调用.跨平台调用.跨语言调用问题的一种规范. 二.应用1.同一个公司新.旧系统的整合:比如CRM系统与OA.客服系统相互调用2.不同公 ...
- Web安全学习笔记之DES算法实例详解
转自http://www.hankcs.com/security/des-algorithm-illustrated.html 译自J. Orlin Grabbe的名作<DES Algorith ...
- CTFHub Web题学习笔记(Web前置技能+信息泄露题解writeup)
今天CTFHub正式上线了,https://www.ctfhub.com/#/index,之前有看到这个平台,不过没在上面做题,技能树还是很新颖的,不足的是有的方向的题目还没有题目,CTF比赛时间显示 ...
- Apache CXF实现Web Service(5)—— GZIP使用
Apache CXF实现Web Service(5)-- GZIP使用 参考来源: CXF WebService整合Spring Apache CXF实现Web Service(1)--不借助重量级W ...
- Web Service--第一次接触web service
Web Service 首发于开源中国 1. 背景 中国移动短信网关需求,要能够发送短信.开发材料只有一个短信发送配置:包括ID,password,code,url.一个jar包还有一个老旧的html ...
- 使用CXF开发简单的Web Service-HelloWorld(二)
上篇博文我们介绍了Web Service的基本概念,了解它的基本概念之后,我们这篇博文介绍一个开源的WebService框架-Apache CXF,并实现一个HelloWorld实例. 一.开始之前 ...
- CXF开发WebService
CXF开发Web Service 参考链接 使用 spring 框架来集成 Web Services 开发 浏览器调用接口 大概这样, 没成功 加@WebMethod(action="get ...
随机推荐
- 【SDOI 2010】 计算器
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2242 [算法] 第一问用快速幂解决 第二问用exgcd解决 第三问用BSGS算法解决 ...
- Nginx实战系列之功能篇----后端节点健康检查
目前,nginx对后端节点健康检查的方式主要有3种,这里列出: 1.ngx_http_proxy_module 模块和ngx_http_upstream_module模块(自带) 官网地址: ...
- office2016专业版激活码
office2016专业版激活密钥 Office 2016 Pro Plus Retail 版激活密钥:office2016专业版激活码 [Key]:3XJTG-YNBMY-TBH9M-CWB2Y-Y ...
- Ubuntu搭建docker环境
一丶自己搭建Ubuntu的虚拟机(网上很多教程) PS:下带图形化界面的Ubuntu镜像,这里只说一下要装那些工具和做那些配置 安装vim sudo apt-get install ...
- 利用python开发的flappy bird 游戏
python 中 pygame模块能让我们很方便的编写游戏,16年我用python 仿制了flappy bird 游戏,下面是游戏的完整代码以及素材,分享给大家. 第一个python文件,flappy ...
- centos6.5 + Nat网络模式 +SecureCRT 的相关设置
步骤1:先去查看子网掩码和子网ip 提示:打开后先不要关闭,后边还会使用 步骤2:查看本机名 输入: hostname 步骤3:修改本机名 vi /etc/sysconfig/network 在”Ho ...
- Ubuntu16.04下将hadoop2.7.3源代码导入到eclipse neon中
0.为什么会有这篇: 这篇文章的目的在于帮助想学习hadoop源码的内容,却在导入的过程中出现了各种问题的人. 或许你一定找了很多博客都无果,那么不用担心,我和你一样,这也是这篇文章存在的意义,废话少 ...
- 第5章分布式系统模式 在 .NET 中使用 DataSet 实现 Data Transfer Object
要在 .NET Framework 中实现分布式应用程序.客户端应用程序需要显示一个窗体,该窗体要求对 ASP.NET Web Service 进行多个调用以满足单个用户请求.基于性能方面的考虑,我们 ...
- 关于VS 2013连接Microsoft Access 2013的相关问题
① 下载安装Microsoft Access Database Engine 2010 Redistributable(28MB),共有32bit(下载)和64bit(下载)两个版本,具体要安 ...
- poj 2955 Brackets 【 区间dp 】
话说这题自己折腾好久还是没有推出转移的公式来啊------------------ 只想出了dp[i][j]表示i到j的最大括号匹配的数目--ค(TㅅT)------------------- 后来搜 ...