cxf环境搭建与第一个项目
1.什么是cxf
Cxf,apache下的webservice的开源框架。
Apache CXF = Celtix + Xfire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF 了,以下简称为 CXF。Apache CXF 是一个开源的 web Services 框架,CXF 帮助您构建和开发 web Services ,它支持多种协议,比如:SOAP1.1,1,2、XML/HTTP、RESTful HTTP 或者 CORBA。
Cxf是基于SOA总线结构,依靠spring完成模块的集成,实现SOA方式。
2.环境配置
下载地址:
http://cxf.apache.org/download.html
环境变量 :
CXF_HOME=cxf的目录
PATH = PATH;PATH;CXF_HOME\bin;
3.第一个程序
- 在客户端和服务器端都要导入cxf的lib包
- 第一步写sei及其实现
@WebService(targetNamespace="http://weather.itcast.cn/",//指定 wsdl的命名空间name="WeatherInterface",//指定portType的名称portName="WeatherInterfacePort",//指定port的名称serviceName="WeatherService"//服务视图的名称//endpointInterface="cn.itcast.ws.service.WeatherInterface2"//指定哪个接口中方法要发布成webservice服务,接口中加上@webservice注解)
@BindingType(javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)
public interface WeatherInterface {//查询三天天气public @WebResult(name="result") List<WeatherModel> queryWeather(@WebParam(name="cityName") String cityName);}
public class WeatherInterfaceImpl implements WeatherInterface {@Overridepublic List<WeatherModel> queryWeather(String cityName) {//构造三天天气List<WeatherModel> list = new ArrayList<WeatherModel>();Calendar calendar = Calendar.getInstance();int day = calendar.get(Calendar.DATE);WeatherModel weatherModel_1 =new WeatherModel();weatherModel_1.setDetail("晴");weatherModel_1.setData(new Date());weatherModel_1.setTemperature_max(5);weatherModel_1.setTemperature_min(-6);WeatherModel weatherModel_2 =new WeatherModel();weatherModel_2.setDetail("阴");calendar.set(Calendar.DATE, day+1);weatherModel_2.setData(calendar.getTime());weatherModel_2.setTemperature_max(10);weatherModel_2.setTemperature_min(-3);WeatherModel weatherModel_3 =new WeatherModel();weatherModel_3.setDetail("晴");calendar.set(Calendar.DATE, day+2);weatherModel_3.setData(calendar.getTime());weatherModel_3.setTemperature_max(2);weatherModel_3.setTemperature_min(-9);list.add(weatherModel_1);list.add(weatherModel_2);list.add(weatherModel_3);return list;}}
- 第二步:推送服务
public class WeatherServer {public static void main(String[] args) {//使用jaxWs发布soap协议的webserviceJaxWsServerFactoryBean jaxWsServerFactoryBean = new JaxWsServerFactoryBean();//指定 webservice地址jaxWsServerFactoryBean.setAddress("http://127.0.0.1:12345/weath");//指定 porttypejaxWsServerFactoryBean.setServiceClass(WeatherInterface.class);//指定服务类对象jaxWsServerFactoryBean.setServiceBean(new WeatherInterfaceImpl());//发布服务jaxWsServerFactoryBean.create();}}
然后在浏览器中输入
http://127.0.0.1:12345/weath?wsdl就能看到说明文档
第三步 利用cxf工具自动生成调用服务的代码
wsdl2java -d xxx http://127.0.0.1:12345/weath?wsdl
- 第四步 编写客户端调用服务
package cn.itcast.weather;import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.List;import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;public class WeathClient3 {public static void main(String[] args) {JaxWsProxyFactoryBean jaxWsProxyFactoryBean=new JaxWsProxyFactoryBean();jaxWsProxyFactoryBean.setAddress("http://127.0.0.1:12345/weath?wsdl");jaxWsProxyFactoryBean.setServiceClass(WeatherInterface.class);WeatherInterface weatherInterface = (WeatherInterface) jaxWsProxyFactoryBean.create();// 调用portType方法List<WeatherModel> list = weatherInterface.queryWeather("郑州");for (WeatherModel weatherModel : list) {System.out.println(weatherModel.getDetail());Date date = weatherModel.getData().toGregorianCalendar().getTime();System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(date));System.out.println(weatherModel.getTemperatureMax());System.out.println(weatherModel.getTemperatureMin());}}
}
结果
晴
2017-05-27
5
-6
阴
2017-05-28
10
-3
晴
2017-05-29
2
-9
cxf环境搭建与第一个项目相关推荐
- 基于PHPEnv的本地环境搭建—PHP第一个项目:HelloWorld(从安装到运行)
1.安装软件 编程工具:Notepad++ 运行环境:phpEnv 2.用phpEnv建立本地运行环境 (1)官方下载phpEnv,运行phpEnv,启动服务.服务启动之后,apache和mysql变 ...
- 代驾APP_第一章_项目环境搭建_第一节
代驾APP_第一章_项目环境搭建 文章目录 代驾APP_第一章_项目环境搭建 1-1 创建根项目 一.创建SpringBoot项目 二.覆盖pom.xml文件 1-2 创建根项目 一.创建公共模块 二 ...
- Flutter环境搭建、运行gallary项目
Flutter环境搭建.运行gallary项目 主体步骤 1.从github clone flutter的sdk, git clone -b beta https://github.com/flutt ...
- Dart Server开发环境搭建及新建运行项目
Dart Server开发环境搭建及新建运行项目 开发环境的搭建 1. 下载Dart SDK 2. 下载开发工具 3. 创建Dart Server项目 Dart除了可以使用Flutter进行移动应用开 ...
- 程序猿编程课堂 Python学习之入门篇1:环境搭建与第一个程序
前言: Python作为目前比较热门的编程语言,其简单和简洁的语法使它成为一种非常好的通用编程语言,它是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),并且随着版本的不断更新和 ...
- 人工智能运行环境linux,Intel OpenVINO 人工智能推论环境搭建 (Linux) 第一章
一· ubunbu18.04操作系统环境安装. 快捷安装Ubuntu8.04 二· OpenVINO 针对 Ubunbu18.04运行环境依赖安装. 由于cn.archive.ubuntu.com,在 ...
- ReactNative入门(一)——环境搭建及第一个RN项目—HelloWorld
ReactNative入门--本篇以及接下来的几篇有关RN的文章,是默认你对前端相关知识如Node,React,以及原生移动端Android可以熟练使用的情况下(最起码达到了解会用的程度)为前提的!不 ...
- hyperledger fabric v2.4环境搭建及区块链项目开发
基础环境配置,不再详细描述:学习交流可联系博主. 安装go 安装docker 安装docker-compose 清空历史docker images docker system prune --all ...
- ionic入门教程第一课--环境搭建和新建ionic项目
最近由于公司项目需要,自学Ionic.在这里做个备忘,也希望能帮到想自学ionic的其他朋友. 一.首先需要安装node.js环境,对于不了解node.js的同学也没有关系, 因为我们有用到的只是no ...
最新文章
- 电大工商管理计算机考试,东方电大工商管理专科计算机期末复习EXCEL五题.docx...
- 【Xamarin 挖墙脚系列:Xamarin SDK开源了................】
- 知道第一章计算机基础知识作业答案,大学计算机基础作业答案
- 55种数据可视化开源工具_4种开源工具让我的创业起步
- 聚类效果评价——Silhouette Coefficient(轮廓系数)——内部评估标准(1)
- 代码编辑器横评:为什么 VS Code 能拔得头筹?| 程序员硬核评测
- 2012年7月的主要目标
- JZOJ5197 C
- 《软件需求十步走》阅读计划第三篇
- 建筑电气工程设计常用图形和文字符号_建筑电气施工图设计正误案例对比
- Atitit sumdoc ta index list atiitt 2008 diary 大事记v2 s222.docx Atiti. 2010---2016大事记 just world new
- 100个C语言经典小程序和C语言编写的小游戏
- SAI的操作与快捷键
- Java之小球碰撞反弹
- 史上最全微信域名防封API原理及实现方案
- 泛微oa系统什么框架_泛微OA系统怎么样?与其他OA相比呢?
- 零学Java(7)之数据类型,小AD竟然solo不过小朋友
- 《点线SLAM系统》
- FPD-LINK网上搜集的相关资料链接(持续更新)
- 4K智能AI双目自动跟踪云台摄像机