cxf發佈webservice服務及客戶端的調用

一、下載cxf

地址:http://cxf.apache.org/download.html   選擇適合自己的版本

二、配置環境變量

將下載好包解壓,然後配置如下的環境變量

CXF_HOME = C:\tomcat\apache-cxf-3.3.4

Path = %CXF_HOME%\bin

三、CXF服務端的第一個例子

        1、創建一個普通的Java項目,導入如圖的jar包,將該目錄下的jar都導入到項目中

  2、創建一個服務接口,如下所示:

package my;

import javax.jws.WebService;

@WebService

public interface WeatherInterface

{

    public String getWeather(String city);

    public String[] getCities(String pro);

}

  3、創建接口的實現類,如下所示:

  package my;

public class WeatherInterfaceImpl implements WeatherInterface {

    @Override

    public String getWeather(String city) {

        if("廣州".equals(city))

        {

            return "天氣晴,未來幾天都是晴天。";

        }

        return "該城市暫未開通";

    }

    @Override

    public String[] getCities(String pro) {

        if ("廣東".equals(pro))

        {

            return new String[]{"廣州" , "深圳" , "佛山"};

        }

        return new String[]{"該省暫未開通"};

    }

}

4、發佈服務,在main方法寫入如下代碼,然後執行main方法

   import my.WeatherInterfaceImpl;

import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

public class Main {

    public static void main(String[] args) {

        System.out.println("開始發佈!");

        //發佈服務

        //1、創建工廠bean

        JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();

        //2、設置服務對象

        factoryBean.setServiceBean(new WeatherInterfaceImpl());

        //3、設置服務發佈地址

        factoryBean.setAddress("http://127.0.0.1:9090/weather");

        //4、創建安服務

        factoryBean.create();

        System.out.println("發佈成功!");

    }

}

5、在瀏覽器訪問我們的服務

在瀏覽器地址欄打開地址:http://127.0.0.1:9090/weather?wsdl

返回如圖所示,則說明服務創建成功

到此我們的服務端已經創建成功。

四、cxf的客戶端

      1、創建一個普通的Java項目

2、生成客戶端代碼

     (1)在dows窗口進入src目錄,如圖所示

   

(2)在dows窗口執行;wsdl2java -d . http://127.0.0.1:9090/weather?wsdl

          然後在src目錄先生成如下文件:

     (3)在main方法中調用,如下代碼

package my;

import java.util.List;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

public class Main

{

public static void main(String[] args)

{

System.out.println("hello world!");

//1、創建代理工廠

JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();

//2、設置接口

factoryBean.setServiceClass(WeatherInterface.class);

//3、設置地址

factoryBean.setAddress("http://127.0.0.1:9090/weather?wsdl");

//4、創建服務

WeatherInterface ws = factoryBean.create(WeatherInterface.class);

String str = ws.getWeather("廣州");

List<String> citis = ws.getCities("廣東");

System.out.println(str);

System.out.println(citis);

}

}

   執行之後,出現如圖結果,說明調用成功

到此,cxf發佈webservice已經做好了。

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