cxf环境搭建与第一个项目
来源:互联网 发布:如何优化标题 编辑:程序博客网 时间:2024/05/20 15:12
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 =
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 { @Override public 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协议的webservice JaxWsServerFactoryBean jaxWsServerFactoryBean = new JaxWsServerFactoryBean(); //指定 webservice地址 jaxWsServerFactoryBean.setAddress("http://127.0.0.1:12345/weath"); //指定 porttype jaxWsServerFactoryBean.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-275-6阴2017-05-2810-3晴2017-05-292-9
阅读全文
0 0
- cxf环境搭建与第一个项目
- spring boot MVC 小项目 -搭建环境与第一个项目
- struts2开发环境的搭建与第一个项目的创建
- Spring Boot / Spring MVC 入门实践 (一) :环境搭建与第一个项目
- Maven随笔之一:Maven环境搭建与第一个maven项目
- Spring Boot / Spring MVC 入门实践 (一) :环境搭建与第一个项目
- Spring Boot / Spring MVC 入门实践 (一) :环境搭建与第一个项目
- 环境搭建好后的第一个Android 项目
- 搭建ionic项目环境并开始第一个demo
- 搭建ionic项目环境并开始第一个demo
- 搭建环境篇 | 运行第一个Java Web 项目
- openGL搭建环境及运行第一个项目
- RN入门---环境搭建和第一个RN项目
- DWR的环境搭建与第一个入门程序HelloWorld
- RobotFramework+Selenium2环境搭建与第一个脚本
- 《JSF教程》-03 环境搭建与第一个入门例子
- React + ES6环境搭建与第一个应用
- vue环境搭建与创建第一个vuejs文件
- ShaderLab基础语法
- API 开发的心得总结
- php自带压缩方法的性能比较
- 自定义可滑动的按钮
- 淘淘商城系列——maven工程debug调试
- cxf环境搭建与第一个项目
- [BZOJ2795] [Poi2012] [字符串hash] A Horrible Poem
- 在orangePi上启动MAVProxy的方法
- Codeforces Round #416 (Div. 2) ABC
- JSON的序列化与反序列化及其在前后台交互中的应用
- 找到一个Delphi xe帮助文档剥离的方法
- Java笔记之final关键字
- linux shell (历史命令)
- Multithreaded simple data type access and atomic variables