日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring与cxf的整合

發(fā)布時(shí)間:2024/2/28 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring与cxf的整合 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 1.倒入cxf所需要的包(其中包括spring的支持)
  • 2.編寫SEI與服務(wù)
package cn.itcast.ws.pojo; import java.util.Date; public class WeatherModel {//天氣概況private String detail;//日期private Date data;//最高溫度private int temperature_max;//最低溫度private int temperature_min;public String getDetail() {return detail;}public void setDetail(String detail) {this.detail = detail;}public Date getData() {return data;}public void setData(Date data) {this.data = data;}public int getTemperature_max() {return temperature_max;}public void setTemperature_max(int temperature_max) {this.temperature_max = temperature_max;}public int getTemperature_min() {return temperature_min;}public void setTemperature_min(int temperature_min) {this.temperature_min = temperature_min;} } @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);} package cn.itcast.ws.service;import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List;import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebResult; import javax.jws.WebService;import cn.itcast.ws.pojo.WeatherModel;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;} }
  • 3.開始搞定服務(wù)端的配置問題
    • 在sourse folder的config下添加applicationContext
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:cxf="http://cxf.apache.org/core"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsdhttp://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsdhttp://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd"><!-- service --> <bean id="weatherInterface" class="cn.itcast.ws.service.WeatherInterfaceImpl"/><!-- 發(fā)布服務(wù) 使用jaxws:server和jaxws:endpoint可以發(fā)布服務(wù) webservice地址=tomcat地址+cxf servlet的路徑+/weather--> <jaxws:server address="/weatherss" serviceClass="cn.itcast.ws.service.WeatherInterface"><jaxws:serviceBean><ref bean="weatherInterface"/></jaxws:serviceBean> </jaxws:server> </beans>
  • 4.運(yùn)行tomcat,部署項(xiàng)目

  • 5.客戶端開始創(chuàng)建

先用cxf在嗎自動(dòng)生成工具

wsdl2java -d XXX http://127.0.0.1:12345/weath?wsdl

XXX表示代碼生成的本地目錄

  • 6 同樣在客戶端上也添加cxf的jar包,添加applicationComtext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:cxf="http://cxf.apache.org/core"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsdhttp://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsdhttp://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd"><!-- 使用<jaxws:client調(diào)用服務(wù)端 jaxws:client內(nèi)部使用JaxWsProxyFactoryBean方式 serviceClass:指定portType地址(需要使用wsdl2java工具生成)--> <jaxws:client id="weatherClient" address="http://localhost:8080/ws_1231_cxf_spring_server/ws/weatherss?wsdl"serviceClass="cn.itcast.weather.WeatherInterface"></jaxws:client></beans>
  • 7.調(diào)用服務(wù)方法
package cn.itcast.ws.cxf;import java.text.SimpleDateFormat; import java.util.Date; import java.util.List;import org.junit.Before; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;import cn.itcast.weather.WeatherInterface; import cn.itcast.weather.WeatherModel;/*** * <p>* Title: ClientTest* </p>* <p>* Description: cxf+spring整合,客戶端測試* </p>* <p>* Company: www.itcast.com* </p> public class ClientTest {private ApplicationContext applicationContext;@Beforepublic void before() {applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");}@Testpublic void testCxfSpringClient() {// 從spring容器中取出porttypeWeatherInterface weatherInterface = (WeatherInterface) applicationContext.getBean("weatherClient");// 調(diào)用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());}}}

代碼地址
https://github.com/ruiruiruiruirui22/cxf_spring

總結(jié)

以上是生活随笔為你收集整理的spring与cxf的整合的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。