webService簡單的使用cxf框架搭建(五)


 

一、下載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  

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM