一、下載cxf文件
http://cxf.apache.org/download.html
二、將下載好的文件解壓,之后配置
CXF_HOME,配置方式與jdk環境類似;
在path中添加。
三、服務器搭建
1.導入jar包
a.將apache-cxf-2.7.11\lib 路徑下的jar包放入MyEclipse
b.右鍵-->buildpath-->configure Build Path --> Libraries --> Add JARs --> 選擇導入"cxf-manifest.jar"一個包即可。之后Referenced Libiries出現下列N多jar包
2.創建SEI接口
package ws.cxf.service; import javax.jws.WebService; import javax.xml.ws.BindingType; import javax.xml.ws.soap.SOAPBinding; //@BindingType 發布soap1.2的服務端 @WebService @BindingType(SOAPBinding.SOAP12HTTP_BINDING) public interface WeatherInterface { public String queryWeather(String cityName); }
3。創建實現類
package ws.cxf.service; public class WeatherInterfaceImpl implements WeatherInterface{ @Override public String queryWeather(String cityName) { // TODO Auto-generated method stub System.out.println("from cilent..."+cityName); return "晴"; } }
4.使用JaxWsServerFactoryBean發布服務。
package ws.cxf.service; import org.apache.cxf.jaxws.JaxWsServerFactoryBean; public class WeatherServer { public static void main(String[] args) { // JaxWsClientFactoryBean發布服務 JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean(); // 設置服務接口 factoryBean.setServiceClass(WeatherInterface.class); // 設置實現類 factoryBean.setServiceBean(new WeatherInterfaceImpl()); // 設置服務地址 factoryBean.setAddress("http://127.0.0.1:12345/weather"); // 發布 factoryBean.create(); } }
四、客戶端搭建
1.使用命令導入wsdl
cmd進入項目根目錄-->
wsdl2java -p ws.cxf.server -d . http://127.0.0.1:12345/weather?wsdl
2.調用生成的服務端代碼
package ws.cxf.cilent; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; import ws.cxf.server.WeatherInterface; public class cilent { public static void main(String[] args) { // 調用服務端 JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); // 設置服務端接口 factory.setServiceClass(WeatherInterface.class); // 設置服務地址 factory.setAddress("http://127.0.0.1:12345/weather"); // 獲取服務接口實例 WeatherInterface create = factory.create(WeatherInterface.class); String queryWeather = create.queryWeather("sh"); System.out.println(queryWeather); } }
控制台:
客戶端控制台輸出:晴
服務器控制台輸出:from cilent...sh