1、 JaxWsProxyFactoryBean 簡介: 調用方式采用了和RMI類似的機制,即用戶端直接伺服器端提供的服務接口(interface),CXF通過運作時代理生成遠端服務的代理對象,在用戶端完成對webservice的通路; 幾個必填的字段:setAddress-這個就是我們釋出webservice時候的位址,保持一緻 缺點: 這種調用service的好處在于調用過程非常簡單,就幾行代碼就完成一個webservice的調用,但是用戶端也必須依賴伺服器端的接口,這種調用方式限制是很大的,要求伺服器端的webservice必須是java實作--這樣也就失去了使用webservice的意義
- public class Client {
- public static void main(String[] args) {
- JaxWsProxyFactoryBean bean = new JaxWsProxyFactoryBean();
- bean.setServiceClass(HelloWorldService.class);
- bean.setAddress("http://localhost:9090/helloWorldService");
- HelloWorldService helloWorldService = (HelloWorldService)bean.create();
- String result = helloWorldService.sayHello("Kevin");
- System.out.println(result);
- }
2、 JaxWsDynamicClientFactory 簡介: 隻要指定伺服器端wsdl檔案的位置,然後指定要調用的方法和方法的參數即可,不關心服務端的實作方式。
- public class Client3 {
- public static void main(String[] args) throws Exception {
- JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();
- Client client = clientFactory.createClient("http://localhost:9090/helloWorldService?wsdl");
- Object[] result = client.invoke("sayHello", "KEVIN");
- System.out.println(result[0]);
- }
- }
3、JaxWsServerFactoryBean