夢幻之旅

          DEBUG - 天道酬勤

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
          調用方式1:
          package client;

          import java.net.MalformedURLException;

          import org.codehaus.xfire.XFireFactory;
          import org.codehaus.xfire.client.XFireProxyFactory;
          import org.codehaus.xfire.service.Service;
          import org.codehaus.xfire.service.binding.ObjectServiceFactory;

          import services.IReaderService;
          import beans.Reader;

          public class ReaderClient
          {
              public static void main(String[] args)
              {
                  // 這里是創建一個service,需要傳入一個接口類,因為我們后面必須調用相應的接口方法
                  Service srcModel = new ObjectServiceFactory()
                          .create(IReaderService.class);
                  // 代理工廠,這里是為了后面創建相應的接口類
                  XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
                          .newInstance().getXFire());
                  // webservice地址,不需要加wsdl
                  String readerServiceUrl = "http://127.0.0.1:8080/myWebservice/services/readerService";
                  
                  try
                  {
                      // 利用工廠返回相應的接口類
                      IReaderService readerService = (IReaderService) factory.create(
                              srcModel, readerServiceUrl);
                      
                      //String str = readerService.sayHello("惠萬鵬");
                      
          //System.out.println(str);
                      
                      Reader reader = readerService.getReader("shun", "123");
                      System.out.println(reader);
                  }
                  catch (MalformedURLException e)
                  {
                      e.printStackTrace();
                  }
              }
          }
          調用方式2:
          package client;

          import java.net.MalformedURLException;
          import java.net.URL;

          import org.codehaus.xfire.client.Client;
          import org.w3c.dom.Document;
          import org.w3c.dom.Element;
          import org.w3c.dom.Node;
          import org.w3c.dom.NodeList;

          public class ReaderClient2
          {
              public static void main(String[] args)
              {
                  Client client = null;
                  try
                  {
                      client = new Client(
                              new URL(
                                      "http://127.0.0.1:8080/myWebservice/services/readerService?wsdl"));
                      Object[] result1 = client.invoke("sayHello", new Object[] { "張三" });
                      System.out.println(result1[0]);
                      
                      //Object[] result2 = client.invoke("getReader", new Object[] { "張三", "123456" });
                      Object[] result2 = client.invoke("getReaders", new Object[] { null });
                      Document xmlTree = (Document) result2[0];
                      System.out.println("x: " + xmlTree.toString());
                      
                      anylizeElement(xmlTree);
                  }
                  catch (MalformedURLException e)
                  {
                      e.printStackTrace();
                  }
                  catch (Exception e)
                  {
                      e.printStackTrace();
                  }
              }
              
              private static void anylizeElement(Document xmlTree) {
                  Element element = xmlTree.getDocumentElement();
                  System.out.println(element.getFirstChild().getFirstChild()
                          .getNodeName());
                  System.out.println(element.getFirstChild().getFirstChild()
                          .getNodeValue());
                  NodeList children = element.getChildNodes();
                  for (int i = 0; i < children.getLength(); i++) {
                      Node node = children.item(i);
                      stepThrough(node);
                  }
              }
               
              private static void stepThrough(Node start) {
                  for (Node child = start.getFirstChild(); child != null; child = child
                          .getNextSibling()) {
                      if (child instanceof Node)// 去除多余的空白
                      {
                          System.out.print("節點名:" + child.getNodeName());
                          System.out.println("\t節點值:" + child.getNodeValue());
                      }
                      if (child != null)
                          stepThrough(child);
                  }
              }
              
          }
          posted on 2014-07-06 14:40 HUIKK 閱讀(246) 評論(0)  編輯  收藏 所屬分類: webservice
          主站蜘蛛池模板: 青海省| 抚顺县| 白水县| 曲松县| 乌拉特前旗| 永康市| 双江| 社旗县| 河池市| 榆社县| 宣威市| 公主岭市| 朝阳市| 慈利县| 河池市| 额济纳旗| 四平市| 磴口县| 逊克县| 阳曲县| 黎城县| 卓尼县| 柯坪县| 防城港市| 霞浦县| 丁青县| 瑞昌市| 毕节市| 盘山县| 汝州市| 达日县| 嘉鱼县| 吴堡县| 曲沃县| 南溪县| 泸水县| 泽库县| 姚安县| 嵩明县| 临汾市| 琼中|