eclipse插件實現Java調用 asmx 的Web Service

          eclipse插件(axis2 tool--Code Generator Wizard)實現Java調用 asmx 的Web Service

          一個獲得天氣情況及國家城市的 Web Service
          http://www.webservicex.net/globalweather.asmx?WSDL

          AXIS2 下載地址 http://ws.apache.org/axis2/download.cgi
          其eclipse工具 http://ws.apache.org/axis2/tools/index.html
          Code Generator Wizard - Eclipse Plug-in 可以以eclipse中的link方式安裝.即可以通過自動
          生成java service code.

          具體步驟如下:
          在eclipse的java project中 NEW --> Other --> Axis2 Wizards -->Axis2 Code Generator
          NEXT --> 選擇 Generate java source code from a WSDL file
          NEXT --> 在WSDL file location: 中輸入 : http://www.webservicex.net/globalweather.asmx?WSDL
          NEXT --> NEXT --> 選擇好文件生成路徑
          如: E:\eclipseworkspace\axis213\src
          FINISH 后會自動生成兩個文件:
          GlobalWeatherCallbackHandler.java 和 GlobalWeatherStub.java

          新建一個測試文件GlobalWeatherTest.java.
          內容如下:
          package net.webservicex.www;

          import java.io.FileNotFoundException;
          import java.io.IOException;
          import java.io.StringReader;
          import java.rmi.RemoteException;

          import javax.xml.parsers.DocumentBuilder;
          import javax.xml.parsers.DocumentBuilderFactory;
          import javax.xml.parsers.ParserConfigurationException;

          import org.w3c.dom.Document;
          import org.w3c.dom.Element;
          import org.w3c.dom.Node;
          import org.w3c.dom.NodeList;
          import org.xml.sax.InputSource;
          import org.xml.sax.SAXException;

          public class GlobalWeatherTest {
           public static void main(String[] args) throws RemoteException {
            GlobalWeatherStub stub = new GlobalWeatherStub();
            GlobalWeatherStub.GetCitiesByCountry request = new GlobalWeatherStub.GetCitiesByCountry();
            request.setCountryName("Korea");
            GlobalWeatherStub.GetCitiesByCountryResponse response = stub
              .GetCitiesByCountry(request);
            System.out.println("=================國家城市=================");
            //System.out.println(response.getGetCitiesByCountryResult());
            String xml = response.getGetCitiesByCountryResult();
            parseXML(xml);
            
            GlobalWeatherStub.GetWeather weatherRequest = new
            GlobalWeatherStub.GetWeather();
            weatherRequest.setCountryName("Korea");
            weatherRequest.setCityName("Seoul");
            GlobalWeatherStub.GetWeatherResponse weatherResponse =
            stub.GetWeather(weatherRequest);
            System.out.println("=================國家/城市/天氣=================");
            System.out.println(weatherResponse.getGetWeatherResult());
           }

           public static void parseXML(String xml) {
            DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
            try {
             DocumentBuilder dombuilder = domfac.newDocumentBuilder();
             StringReader rd = new StringReader(xml);
             InputSource is = new InputSource(rd);

             Document doc = dombuilder.parse(is);
             Element root = doc.getDocumentElement();
             NodeList citys = root.getChildNodes();

             if (citys != null) {
              for (int i = 0; i < citys.getLength(); i++) {
               Node city = citys.item(i);
               if (city.getNodeType() == Node.ELEMENT_NODE) {
                for (Node node = city.getFirstChild(); node != null; node = node
                  .getNextSibling()) {
                 if (node.getNodeType() == Node.ELEMENT_NODE) {
                  if (node.getNodeName().equals("Country")) {
                   String country = node.getFirstChild()
                     .getNodeValue();
                   System.out.print(country);
                  }
                  if (node.getNodeName().equals("City")) {
                   String cityname = node.getFirstChild()
                     .getNodeValue();
                   System.out.println(" || " + cityname);
                  }
                 }
                }
               }
              }
             }
            } catch (ParserConfigurationException e) {
             e.printStackTrace();
            } catch (FileNotFoundException e) {
             e.printStackTrace();
            } catch (SAXException e) {
             e.printStackTrace();
            } catch (IOException e) {
             e.printStackTrace();
            }
           }
          }


          運行結果如下:

          =================國家城市=================
          Korea, Republic of || Kwangju Ab
          Korea, Republic of || Kunsan Ab
          Korea, Republic of || Yosu Airport
          Korea, Republic of || Chunchon Ab
          Korea, Republic of || Hoengsong Ab
          Korea, Republic of || Kangnung Ab
          Korea, Republic of || Wonju
          Korea, Republic of || Cheju International Airport
          Korea, Republic of || Pusan / Kimhae International Airport
          Korea, Republic of || Mosulpo Ab
          Korea, Republic of || Sach'On Ab
          Korea, Republic of || Ulsan
          Korea, Republic of || Tonghae Radar Site
          Korea, Republic of || Seoul / Yongdungp'O Rokaf Wc
          Korea, Republic of || Pyongtaek Ab
          Korea, Republic of || Seoul
          Korea, Republic of || Seoul E Ab
          Korea, Republic of || Koon-Ni Range
          Korea, Republic of || Osan Ab
          Korea, Republic of || Paengnyongdo Ab
          Korea, Republic of || Yeonpyeungdo
          Korea, Republic of || Seoul / Kimp'O International Airport
          Korea, Republic of || Yeoju Range
          Korea, Republic of || Suwon Ab
          Korea, Republic of || Camp Stanley / H-207
          Korea, Republic of || Yongsan / H-208 Hp
          Korea, Republic of || Andong
          Korea, Republic of || Paekado
          Korea, Republic of || Taejon Kor-Afb
          Korea, Republic of || Songmu Ab
          Korea, Republic of || Taejon
          Korea, Republic of || Pohang Ab
          Korea, Republic of || Jung Won Rok-Ab
          Korea, Republic of || Mangilsan Ab
          Korea, Republic of || Taegu Ab
          Korea, Republic of || Sangju
          Korea, Republic of || Taegu
          Korea, Republic of || Chongju Ab
          Korea, Republic of || Woong Cheon
          Korea, Republic of || Yechon Ab
          Korea, Democratic People's Republic of || Kimchaek
          Korea, Democratic People's Republic of || Pyongyang
          =================國家/城市/天氣=================
          <?xml version="1.0" encoding="utf-16"?>
          <CurrentWeather>
            <Location>Seoul / Kimp'O International Airport, Korea, South (RKSS) 37-33N 126-48E 18M</Location>
            <Time>Oct 24, 2007 - 11:00 AM EDT / 2007.10.24 1500 UTC</Time>
            <Wind> from the NNW (330 degrees) at 2 MPH (2 KT) (direction variable):0</Wind>
            <Visibility> less than 1 mile:0</Visibility>
            <SkyConditions> partly cloudy</SkyConditions>
            <Temperature> 48 F (9 C)</Temperature>
            <DewPoint> 48 F (9 C)</DewPoint>
            <RelativeHumidity> 100%</RelativeHumidity>
            <Pressure> 30.24 in. Hg (1024 hPa)</Pressure>
            <Status>Success</Status>
          </CurrentWeather>

          WSDL

          =============最新的axis2-eclipse-codegen-wizard-1.4 用法(20080806)==============

          用同樣的方法生成代碼有五個:
          GlobalWeather.java
          GlobalWeatherLocator.java
          GlobalWeatherSoap.java
          GlobalWeatherSoapProxy.java
          GlobalWeatherSoapStub.java

          客戶端調用如下:
          GlobalWeatherLocator gwl = new GlobalWeatherLocator();
          GlobalWeatherSoapStub binding = (GlobalWeatherSoapStub)gwl.getGlobalWeatherSoap();
          System.out.println(">>>"+binding.getCitiesByCountry("Korea"));
          System.out.println(binding.getWeather("Seoul", "Korea"));

          posted on 2013-04-06 10:37 youngturk 閱讀(3065) 評論(1)  編輯  收藏 所屬分類: Java基礎webService

          評論

          # re: eclipse插件實現Java調用 asmx 的Web Service [未登錄] 2013-05-23 09:33 tom

          非常感謝  回復  更多評論   

          <2013年4月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導航

          統計

          公告

          this year :
          1 jQuery
          2 freemarker
          3 框架結構
          4 口語英語

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          EJB學習

          Flex學習

          learn English

          oracle

          spring MVC web service

          SQL

          Struts

          生活保健

          解析文件

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 奉新县| 章丘市| 乌什县| 金山区| 巨鹿县| 永兴县| 科技| 石柱| 东城区| 吐鲁番市| 湘西| 中江县| 资阳市| 灵山县| 莱西市| 张家口市| 洛南县| 比如县| 龙游县| 忻州市| 泌阳县| 洮南市| 色达县| 舒兰市| 汝阳县| 边坝县| 合作市| 台州市| 确山县| 安康市| 丽水市| 宁陕县| 和田县| 玉门市| 五原县| 武邑县| 辽宁省| 高密市| 南和县| 山丹县| 东兰县|