溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          雪山飛鵠

          溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
                  功能描述:平常在項目中使用xfire來寫webservice返回值大都為字符串,今天無意間查看了xfire的官方文檔,發(fā)現(xiàn)用xfire來編寫返回值為list的web服務(wù)也很簡單。但步驟稍微繁瑣一點。怕遺忘,特此記錄一番。
                  環(huán)境描述:myeclipse6.5+xfire1.2
                  核心代碼:
                  普通的JavaBean:Users.java(該類是一普通的JavaBean,建議實現(xiàn)java.io.Serializable接口)主要用來實現(xiàn)List<Users>這種功能
                  
          package com.xfiredemo.entity;

          import java.io.Serializable;

          @SuppressWarnings(
          "serial")
          public class Users implements Serializable{
              
              
          private int id;
              
          private String username;
              
          private String sex;
              
          private int age;
              
          private String memo;
              
          public int getId() {
                  
          return id;
              }

              
          public void setId(int id) {
                  
          this.id = id;
              }

              
          public String getUsername() {
                  
          return username;
              }

              
          public void setUsername(String username) {
                  
          this.username = username;
              }

              
          public String getSex() {
                  
          return sex;
              }

              
          public void setSex(String sex) {
                  
          this.sex = sex;
              }

              
          public int getAge() {
                  
          return age;
              }

              
          public void setAge(int age) {
                  
          this.age = age;
              }

              
          public String getMemo() {
                  
          return memo;
              }

              
          public void setMemo(String memo) {
                  
          this.memo = memo;
              }

          }

                  webservice接口IUsersService
                  
          package com.xfiredemo.service;

          import java.util.List;

          import com.xfiredemo.entity.Users;

          /**
           * webservice接口
           * 
          @author coder
           *
           
          */

          public interface IUsersService {
              
              
          public List<Users> getUsers();
              
          }
                  用于描述該webservice接口中返回值類型的描述文件IUsersService.aegis.xml(該文件必須與webservice中的接口位于同一目錄,且命名遵循webservice接口名.aegis.xml 如本文件IUsersService.aegis.xml)
                  
          <?xml version="1.0" encoding="UTF-8"?>
              
          <!-- 
                  該文件用來描述IUsersService接口中g(shù)etUsers()方法返回值的類型
                  該文件必須與IUsersService位于同一目錄中,且該文件遵循如下命名規(guī)則
                  webservice接口名.aegis.xml 如本文件IUsersService.aegis.xml
              
          -->
          <mappings>
              
          <!-- 映射getUsers方法返回值類型 -->
              
          <mapping>
                  
          <method name="getUsers">
                      
          <return-type componentType="#users"/>
                  
          </method>
                  
          <!--
                      name對應(yīng)<return-type componentType="#users"/>中的componentType 
                      class為實體bean的類型即list中存放的類型 
                      componentType為實體bean的類型
                  
          -->
                  
          <component name="users" class="com.xfiredemo.entity.Users" componentType="com.xfiredemo.entity.Users"/>
              
          </mapping>
          </mappings>
                  webservice接口實現(xiàn)類UsersServiceImpl.java (構(gòu)造模擬數(shù)據(jù))
          package com.xfiredemo.service;

          import java.util.ArrayList;
          import java.util.List;

          import com.xfiredemo.entity.Users;

          /**
           * webservice實現(xiàn)類
           * @author coder
           *
           */
          public class UsersServiceImpl implements IUsersService {
              
              //返回users對象的集合
              public List
          <Users> getUsers() {
                  
                  /*******************模擬數(shù)據(jù)庫往list中添加三條模擬數(shù)據(jù)并返回******************/
                  List
          <Users> list=new ArrayList<Users>();
                  Users users=new Users();
                  users.setId(1);
                  users.setUsername("user1");
                  users.setSex("男");
                  users.setAge(20);
                  users.setMemo("暫無");
                  list.add(users);
                  
                  users=new Users();
                  users.setId(2);
                  users.setUsername("user2");
                  users.setSex("男");
                  users.setAge(20);
                  users.setMemo("暫無");
                  list.add(users);
                  
                  users=new Users();
                  users.setId(3);
                  users.setUsername("user3");
                  users.setSex("男");
                  users.setAge(20);
                  users.setMemo("暫無");
                  list.add(users);
                  
                  return list;
              }
              
          }
                  客戶端測試代碼:UsersServiceClient.java
          package com.xfiredemo.service.client;

          import java.net.MalformedURLException;
          import java.util.List;

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

          import com.xfiredemo.entity.Users;
          import com.xfiredemo.service.IUsersService;

          /**
           * webservice客戶端測試類
           * 
          @author coder
           *
           
          */

          public class UsersServiceClient {
              
              
          public static void main(String[] args) {
                  
          //構(gòu)建service
                  Service service=new ObjectServiceFactory().create(IUsersService.class);
                  
          try {
                      
          //獲得自定義webservice接口
                      IUsersService usersService=(IUsersService) new XFireProxyFactory().create(service, "http://localhost:8080/xfiredemo/services/UsersService");
                      
          //調(diào)用該webservice中定義的getUsers()方法
                      List<Users> list=usersService.getUsers();
                      
          //輸出list長度
                      System.out.println(list.size());
                      
          //遍歷list
                      for (Users users : list) {
                          System.out.println(
          "id:"+users.getId()+"\tusername:"+users.getUsername()+"\tsex:"+users.getSex()+"\tage:"+users.getAge()+"\tmemo:"+users.getMemo());
                      }

                  }
           catch (MalformedURLException e) {
                      e.printStackTrace();
                  }

                  
                  
              }

          }

                  效果圖:

                  
                   點我下載完整的例子
                  參考文檔:http://docs.codehaus.org/display/XFIRE/User%27s+Guide
          posted on 2010-07-14 11:05 雪山飛鵠 閱讀(8980) 評論(4)  編輯  收藏 所屬分類: webservice

          Feedback

          # re: 輕松使用xfire編寫返回值為list的webservice服務(wù) 2011-10-31 20:15 不知道
          客戶端怎么會有服務(wù)器端定義的users類型嗎????  回復(fù)  更多評論
            

          # re: 輕松使用xfire編寫返回值為list的webservice服務(wù) 2012-05-02 17:14 玩兒
          都很好,可是這樣一個簡單工程怎么編譯運行啊?  回復(fù)  更多評論
            

          # re: 輕松使用xfire編寫返回值為list的webservice服務(wù) 2013-06-18 11:21 路過的
          返回類型不是List結(jié)構(gòu)嗎 怎么又成了VO??  回復(fù)  更多評論
            

          # re: 輕松使用xfire編寫返回值為list的webservice服務(wù) 2013-11-22 11:59 yanyujiang
          @不知道
          我也有這個疑問,感覺這都是在服務(wù)端上的,而不是客戶端上的。webservice服務(wù)端和客戶端不是分開的嗎?  回復(fù)  更多評論
            

          主站蜘蛛池模板: 横山县| 泗洪县| 榆林市| 阳谷县| 凤冈县| 平凉市| 常熟市| 孙吴县| 湄潭县| 乡城县| 奉贤区| 德阳市| SHOW| 武城县| 南丹县| 华亭县| 崇左市| 揭东县| 揭阳市| 胶南市| 调兵山市| 临朐县| 三门县| 泰州市| 浦江县| 巴彦淖尔市| 舟山市| 永平县| 姜堰市| 年辖:市辖区| 杂多县| 陕西省| 临桂县| 临夏县| 睢宁县| 九江市| 丰都县| 离岛区| 宁波市| 宝山区| 剑阁县|