----------------------------服務端---------cxf框架------------------------------------------------java
導入jar包web
寫一個webservice接口服務器
@WebService
public interface WebService01 {框架
}url
3.寫一個實現類 (endpointInterface爲webservice接口的全名--包名+類名spa
serviceName="服務名稱").net
@WebService(endpointInterface="cn.gdpe.webservice.WebService01",
serviceName="test01")
public class WebServiceImpl implements WebService01 {代理
}對象
4.向外界暴漏這個服務繼承
public class PublistWeb {
public static void main(String[] args){
//定義服務訪問url 紫色部分必須能夠訪問 紅色部分無所謂 可是我以爲須要符合命名規範
String url="http://127.0.0.1:8080/testWS";
//建立webservice組件
WebService01 ws=new WebServiceImpl();
//暴漏服務
Endpoint.publish(url, ws);
System.out.println("發佈服務成功");
}
}
cxf框架支持的參數類型
1. 8大基本類型,包裝類,String
2.javaBean時複合類型
3.List\set\map類型(須要jdk 1.8支持)
不支持類型:非javabean式複合類型 map類型(jdk 1.8如下版本不支持map類型)
---------------------------------------客戶端----------------------------------------------
第一種方法:
wsdl2java http://127.0.0.1:8080/testWS加上 ?wsdl 固定格式 (服務器發佈時的url。就是Enpoint.publish方法的參數)
?wsdl爲必須的格式
public class WsClient {
/**
* @param args
*/
public static void main(String[] args) {
//建立webservice服務組件工廠
Test01 client=new Test01();//此類必須繼承Service 通常是webservice組件實現類 註解WebService中的屬性爲serviceName的值
//返回的是服務器組件代理對象
WebService01 WSImpl = client.getWebServiceImplPort();
//調用服務組件方法 返回結果
String result=WSImpl.login();
System.out.println(result);
}
}
第二種方法: 經過java自帶的wsimport命令
wsimport http://127.0.0.1:8080/testWS加上 ?wsdl 固定格式 (服務器發佈時的url。就是Enpoint.publish方法的參數)
?wsdl爲必須的格式
與第一種客戶端代碼差很少 根據狀況更改部分代碼