天天看點

JaxWsProxyFactoryBean 與 JaxWsDynamicClientFactory     用JaxWsServerFactoryBean釋出,需要獨立的jetty包。

1、  JaxWsProxyFactoryBean     簡介: 調用方式采用了和RMI類似的機制,即用戶端直接伺服器端提供的服務接口(interface),CXF通過運作時代理生成遠端服務的代理對象,在用戶端完成對webservice的通路; 幾個必填的字段:setAddress-這個就是我們釋出webservice時候的位址,保持一緻      缺點: 這種調用service的好處在于調用過程非常簡單,就幾行代碼就完成一個webservice的調用,但是用戶端也必須依賴伺服器端的接口,這種調用方式限制是很大的,要求伺服器端的webservice必須是java實作--這樣也就失去了使用webservice的意義

  1. public class Client {  
  2.     public static void main(String[] args) {  
  3.         JaxWsProxyFactoryBean bean = new JaxWsProxyFactoryBean();  
  4.         bean.setServiceClass(HelloWorldService.class);  
  5.         bean.setAddress("http://localhost:9090/helloWorldService");  
  6.         HelloWorldService helloWorldService = (HelloWorldService)bean.create();  
  7.         String result = helloWorldService.sayHello("Kevin");  
  8.         System.out.println(result);  
  9.     } 

2、 JaxWsDynamicClientFactory      簡介: 隻要指定伺服器端wsdl檔案的位置,然後指定要調用的方法和方法的參數即可,不關心服務端的實作方式。      

  1. public class Client3 {  
  2.     public static void main(String[] args) throws Exception {  
  3.         JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();  
  4.         Client client = clientFactory.createClient("http://localhost:9090/helloWorldService?wsdl");  
  5.         Object[] result = client.invoke("sayHello", "KEVIN");  
  6.         System.out.println(result[0]);  
  7.     }  
  8. }  

3、JaxWsServerFactoryBean

     用JaxWsServerFactoryBean釋出,需要獨立的jetty包。