cxf环境搭建与第一个项目
生活随笔
收集整理的這篇文章主要介紹了
cxf环境搭建与第一个项目
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.什么是cxf
Cxf,apache下的webservice的開源框架。
Apache CXF = Celtix + Xfire,開始叫 Apache CeltiXfire,后來(lái)更名為 Apache CXF 了,以下簡(jiǎn)稱為 CXF。Apache CXF 是一個(gè)開源的 web Services 框架,CXF 幫助您構(gòu)建和開發(fā) web Services ,它支持多種協(xié)議,比如:SOAP1.1,1,2、XML/HTTP、RESTful HTTP 或者 CORBA。
Cxf是基于SOA總線結(jié)構(gòu),依靠spring完成模塊的集成,實(shí)現(xiàn)SOA方式。
2.環(huán)境配置
下載地址:
http://cxf.apache.org/download.html
環(huán)境變量 :
CXF_HOME=cxf的目錄
PATH = PATH;CXF_HOME\bin;
3.第一個(gè)程序
- 在客戶端和服務(wù)器端都要導(dǎo)入cxf的lib包
- 第一步寫sei及其實(shí)現(xiàn)
@WebService(targetNamespace="http://weather.itcast.cn/",//指定 wsdl的命名空間name="WeatherInterface",//指定portType的名稱portName="WeatherInterfacePort",//指定port的名稱serviceName="WeatherService"//服務(wù)視圖的名稱//endpointInterface="cn.itcast.ws.service.WeatherInterface2"//指定哪個(gè)接口中方法要發(fā)布成webservice服務(wù),接口中加上@webservice注解) @BindingType(javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING) public interface WeatherInterface {//查詢?nèi)焯鞖?/span>public @WebResult(name="result") List<WeatherModel> queryWeather(@WebParam(name="cityName") String cityName);} public class WeatherInterfaceImpl implements WeatherInterface {@Overridepublic List<WeatherModel> queryWeather(String cityName) {//構(gòu)造三天天氣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;}}- 第二步:推送服務(wù)
public class WeatherServer {public static void main(String[] args) {//使用jaxWs發(fā)布soap協(xié)議的webserviceJaxWsServerFactoryBean jaxWsServerFactoryBean = new JaxWsServerFactoryBean();//指定 webservice地址jaxWsServerFactoryBean.setAddress("http://127.0.0.1:12345/weath");//指定 porttypejaxWsServerFactoryBean.setServiceClass(WeatherInterface.class);//指定服務(wù)類對(duì)象jaxWsServerFactoryBean.setServiceBean(new WeatherInterfaceImpl());//發(fā)布服務(wù)jaxWsServerFactoryBean.create();}}然后在瀏覽器中輸入
http://127.0.0.1:12345/weath?wsdl就能看到說(shuō)明文檔
第三步 利用cxf工具自動(dòng)生成調(diào)用服務(wù)的代碼
wsdl2java -d xxx http://127.0.0.1:12345/weath?wsdl- 第四步 編寫客戶端調(diào)用服務(wù)
結(jié)果
晴 2017-05-27 5 -6 陰 2017-05-28 10 -3 晴 2017-05-29 2 -9總結(jié)
以上是生活随笔為你收集整理的cxf环境搭建与第一个项目的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: soap协议的研究
- 下一篇: cxf和spring结合出现问题