【黑馬Android】(15)cxf 介紹 以及ant 工具的使用/cxf總結

cxf 介紹 以及ant 工具的使用


ant 工具:1、爲什麼要用到ant這個工具呢?Ant做爲一種工具已經廣泛被使用,並且歷史悠久。
使用ant的內置命令,可以編譯java源文件(javac),運行java文件(java),給class文件打包(jar、war、ear),
也可以創建(mkdir)、刪除(del)、拷貝(copy),甚至可以使用ant執行sql文件。
由於ant是用xml語言寫成的文件,並取默認名爲build.xml文件。
所以,今後大家應該在見到名爲build.xml文件時知道這是一個ant的文件。


ant 工具後面跟的是任務的名稱


ant server 運行了Server類,發佈了一個webservice


ant client 調用已經發布的webservice 


ant clean 清除已經生成的class 文件


ant war 將java 項目打成一個war 包


ant deploy -Dtomcat=true 把打成的war 拷貝到tomcat 的webapp 下面去。


ant undeploy -Dtomcat=true; 卸載tomcat 下面的項目..

cxf總結

服務端:
用cxf 框架提供的類發佈一個服務
使用cxf 提供 ServerFactoryBean 來發布webservice 
被髮布的類當中可以不需要標註webservice 註解,類當中可以不包含有效的方法,
如果沒有包含有效的方法.它會提供一個空的服務.
//創建發佈服務的類...
ServerFactoryBean bean=new ServerFactoryBean();
bean.setAddress("http://192.168.9.100:8080/server");//服務對外的訪問地址
bean.setServiceClass(CxfWebService.class);//設置服務類的接口類型,如果沒有接口則爲當前類..
bean.setServiceBean(new CxfWebService());//設置服務類的實現
bean.create();//發佈服務
第二種發佈方式:
------------------------------------------------------------------------------------------
使用cxf 框架提供的類 jaxWsServerFactoryBean 發佈webService
jaxWsServerFactoryBean 是 ServerFactoryBean 的子類... 
jaxWsServerFactoryBean bean=new jaxWsServerFactoryBean();
bean.setAddress("http://192.168.9.100:8080/server");//服務對外的訪問地址
bean.setServiceClass(CxfWebService.class);//設置服務類的接口類型,如果沒有接口則爲當前類..
bean.setServiceBean(new CxfWebService());//設置服務類的實現
bean.create();//發佈服務


-------------------------------------------------------------------------------------------
客戶端:
用cxf 框架提供的類調用服務.. (需要依賴一個接口,通過wsimport 生成的代碼當中獲取...)
//創建調用webservice 服務的類...
ClientProxyFactoryBean bean=new ClientProxyFactoryBean();
bean.setAddress("http://192.168.9.100:8080/server");//設置訪問地址...
bean.setServiceClass(CxfWebServicePortType.class);//設置服務的接口...
//創建接口類型...
CxfWebServicePortType cxfWebServicePortType=(CxfWebServicePortType) bean.create();
cxfWebServicePortType.sayHello();
----------------------------------------------------------------------------------
使用cxf 提供類 JaxWsProxyFactoryBean 來調用 webservice 的服務端.......


JaxWsProxyFactoryBean 是  ClientProxyFactoryBean  的子類...
//創建調用服務的類...
JaxWsProxyFactoryBean bean=new JaxWsProxyFactoryBean();
//設置訪問地址
bean.setAddress("http://192.168.9.100:7418/userService");
//設置接口類型...
bean.setServiceClass(UserService.class);
UserService us=(UserService) bean.create();


String data=us.getUserById(1);


System.out.println(data);
---------------------------------------------
調用原則: 總結......
 服務端:       客戶端
 ServerFactoryBean ------------ClientProxyFactoryBean
 JaxWsServerFactoryBean----------------JaxWsProxyFactoryBean 
 JaxWsServerFactoryBean 可以發佈soap1.2 版本的協議....發佈服務的時候,
 我們最好被髮布的服務類要面向接口編程..


命令:wsdl2java  
      wsdl2java 是cxf 框架給我們提供的命令,這個命令的作用與wsimport 類似...

攔截器:
    cxf 框架中提供了攔截器的機制,我們可以通過攔截器獲取到客戶端與服務端進行交互的時候的數據格式
//創建發佈服務的 類...
JaxWsServerFactoryBean  bean=new JaxWsServerFactoryBean();
//設置對外的訪問地址
bean.setAddress("http://192.168.9.100:7418/userService");
bean.setServiceClass(UserService.class);//設置接口類型...
bean.setServiceBean(new UserServiceImpl());//設置接口的實現類...
//我們可以在發佈服務的時候添加消息攔截器
//攔截客戶端往服務端 發送的請求的消息
bean.getInInterceptors().add(new LoggingInInterceptor());
//攔截服務端往客戶端返回的消息...
bean.getOutInterceptors().add(new LoggingOutInterceptor());
bean.create();



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章