夢幻之旅

          DEBUG - 天道酬勤

             :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
          調(diào)用方式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)
              {
                  // 這里是創(chuàng)建一個service,需要傳入一個接口類,因為我們后面必須調(diào)用相應的接口方法
                  Service srcModel = new ObjectServiceFactory()
                          .create(IReaderService.class);
                  // 代理工廠,這里是為了后面創(chuàng)建相應的接口類
                  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();
                  }
              }
          }
          調(diào)用方式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("節(jié)點名:" + child.getNodeName());
                          System.out.println("\t節(jié)點值:" + child.getNodeValue());
                      }
                      if (child != null)
                          stepThrough(child);
                  }
              }
              
          }
          posted on 2014-07-06 14:40 HUIKK 閱讀(247) 評論(0)  編輯  收藏 所屬分類: webservice
          主站蜘蛛池模板: 密云县| 都匀市| 丹东市| 济源市| 温州市| 沙湾县| 遵义县| 顺义区| 永兴县| 海晏县| 安宁市| 绥中县| 兴和县| 方城县| 长沙县| 广安市| 登封市| 宾阳县| 会昌县| 稷山县| 陈巴尔虎旗| 长沙市| 望江县| 横山县| 宁远县| 长白| 深圳市| 宜阳县| 屏边| 林州市| 临潭县| 临江市| 宣恩县| 湖州市| 东方市| 泾阳县| 称多县| 普洱| 乌拉特中旗| 洞口县| 雷波县|