一個簡單的cxf框架調用webservice接口天氣預報例子

wsdl URL:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

cxf環境變量配置百度!

命令:wsdl2java http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl,會在本目錄生成java代碼。

如果報錯,s:schemal.........................,解決方案:

1.先把網址上這個wsdl另存到桌面,記得後綴名是wsdl文件,然後刪掉<s:element ref="s:schema"/>,有幾個刪幾個。

  2.然後在CMD命令窗口裏面cd到wsdl的存放目錄,輸入命令:wsdl2java 你保存的文件名稱.wsdl,直接這樣子會在本目錄生成java代碼,供你調用。

  3.需要的jar包:

activation.jar cxf-2.1.2.jar jaxb-impl-2.1.7.jar wsdl4j-1.6.2.jar xml-resolver-1.2.jar XmlSchema-1.4.2.jar

   如果有需要其他jar包的,請在cxf的lib目錄下找,肯定夠用,麼必要去網上下載下。

下面是調用代碼,把你生成的java代碼導入改項目中即可。

package cn.com.client;
import java.util.List;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import cn.com.webxml.ArrayOfString;
import cn.com.webxml.WeatherWebServiceSoap;
public class Test {  
   public static void main(String[] args) throws Exception {  
       JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();  
       factory.getInInterceptors().add(new LoggingInInterceptor());  
       factory.getOutInterceptors().add(new LoggingOutInterceptor());  
       factory.setAddress("http://www.webxml.com.cn/WebServices/WeatherWebService.asmx");  
       factory.setServiceClass(WeatherWebServiceSoap.class);  
       WeatherWebServiceSoap client = (WeatherWebServiceSoap) factory.create();  
       ArrayOfString o = client.getWeatherbyCityName("北");
       //ArrayOfString o =client.getSupportProvince();
       System.out.println(o);
       List<String> strList = o.getString();  
       for (String str : strList) {  
           System.out.println(str);  
         
       }  
   }  

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