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();