<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 15,comments - 29,trackbacks - 0
    Axis框架來自 Apache 開放源代碼組織,它是基于JAVA語言的最新的 SOAP 規(guī)范(SOAP 1.2)和 SOAP with Attachments 規(guī)范(來自 Apache Group )的開放源代碼實現。下面是它的核心引擎的體系結構圖:



    下面以 http://www.webxml.com.cn/webservices/DomesticAirline.asmx?Wsdl  航班查詢服務為例來分析開發(fā)客戶端的步驟。
    1.首先從http://ws.apache.org/axis/index.html上下載axis的程序包。

    2.運行cmd,進入下載包解壓后的目錄,運行   Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java -p client  http://www.webxml.com.cn/webservices/DomesticAirline.asmx?Wsdl  
    (其中-p是生成代碼的包名,根據需要設置)
     然后把生成的代碼拷貝到項目里面。

    3.拷貝axis里面的包到工程里面。

    4.客戶端代碼。

    public List<TicketInfo> getDomesticAirlinesTime(String startCity, String lastCity, String theDate) throws RemoteException, ServiceException {
            DomesticAirline service 
    = new DomesticAirlineLocator();
            GetDomesticAirlinesTimeResponseGetDomesticAirlinesTimeResult airlines;

            airlines 
    = service.getDomesticAirlineSoap12().getDomesticAirlinesTime(startCity, lastCity,theDate, null);
        
            MessageElement[] FOCElement 
    = airlines.get_any();
            List FOCElementHead 
    = FOCElement[0].getChildren();//消息頭,DataSet對象    
            List FOCElementBody = FOCElement[1].getChildren();//消息體信息,DataSet對象  

            String nn 
    = FOCElementBody.get(0).toString();//消息體的字符串形式     
            
            

            SAXReader reader 
    = new SAXReader();
            Document document 
    = null;

            
    try {
                document 
    = document = DocumentHelper.parseText(nn);
            }
     catch (Exception e) {
                
    // TODO Auto-generated catch block
                System.out.println(e.toString());
            }

            
            
            Element root 
    = (Element)document.getRootElement(); // 得到根元素    

            List
    <TicketInfo> ticketInfoList = new ArrayList<TicketInfo>();
            
    for (Object e : root.elements())
            
    {
                TicketInfo ticketInfo 
    = new TicketInfo();
                Element element 
    = (Element) e;
                ticketInfo.setAirlineCompany(element.elementText(
    "Company"));
                ticketInfo.setFlightNumber(element.elementText(
    "AirlineCode"));
                ticketInfo.setStartAirport(element.elementText(
    "StartDrome"));
                ticketInfo.setEndAirport(element.elementText(
    "ArriveDrome"));
                ticketInfo.setAirCraftType(element.elementText(
    "Mode"));
                SimpleDateFormat  myFmt
    =new   SimpleDateFormat("HH:mm");     
                
    try {
                    ticketInfo.setStartTime(myFmt.parse(element.elementText(
    "StartTime")));
                    ticketInfo.setEndTime(myFmt.parse(element.elementText(
    "ArriveTime")));
                }
     catch (ParseException e1) {
                    
    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }

                
                ticketInfoList.add(ticketInfo);
            }

            
            
    return ticketInfoList;
        }

        
    }

    本來客戶端代碼應該是比較簡單的,但是這個例子的webservice服務端是用.net寫的,查詢后返回DataSet類型,java沒有對應的類型,所以只能把返回后的結果用xml來解析,然后在放入java的數據對象里面。
    posted on 2008-12-04 10:04 流腥魚 閱讀(2871) 評論(0)  編輯  收藏 所屬分類: 編程教程java

    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产偷国产偷亚洲高清在线 | 亚洲精品永久在线观看| 亚洲中文字幕无码专区| 亚洲人成影院在线无码观看| 337P日本欧洲亚洲大胆艺术图| 在线免费观看污网站| 亚洲暴爽av人人爽日日碰| 免费看片免费播放| 亚洲AV永久无码天堂影院| 亚洲av永久无码一区二区三区| 日韩成人免费aa在线看| 亚洲AV无码男人的天堂| 免费欧洲美女牲交视频| a高清免费毛片久久| 情人伊人久久综合亚洲| 国产精品亚洲专区无码唯爱网| 日韩高清免费在线观看| 国产亚洲精品精品精品| 亚洲国产精品日韩| 亚洲综合丁香婷婷六月香| 妞干网免费视频在线观看| 免费人人潮人人爽一区二区| 免费在线看v网址| 亚洲AV无码一区二区三区牲色 | 99精品在线免费观看| 亚洲天堂在线视频| 日本人成在线视频免费播放| 亚洲福利电影在线观看| 无码成A毛片免费| 中文字幕亚洲一区二区va在线| 亚洲高清中文字幕免费| 国产乱子伦片免费观看中字| 中文在线免费看视频| 免费一级黄色毛片| 最新亚洲成av人免费看| 亚洲娇小性xxxx色| 亚洲色图综合在线| 黄页网站在线观看免费高清| 日日狠狠久久偷偷色综合免费| 日韩在线a视频免费播放| 巨胸喷奶水视频www免费视频|