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

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

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

    posts - 297,  comments - 1618,  trackbacks - 0
        《使用XFire+Spring構建Web Service(一)——helloWorld篇》文中我們通過一個簡單的XFire+Spring實例,該實例的sayHelloWorld()方法通過傳入一個字符串參數來返回一個字符串,而實際的應用過程中,遇到的情況比這個要復雜得多,例如,傳入參數是對象、返回自定義對象、返回數組、返回列表。下面讓我們在此文中對XFire+Spring進行更深層的探討吧。

    一.             本例概述

    在本例中,我們將在業務邏輯類是一個用戶的業務邏輯類,包括創建用戶、獲取單個用戶、獲取用戶數組、獲取用戶列表四個方法,因該文講的是XFire+Spring構建webservice,所以在該例中我們并不涉及具體的數據庫操作,而只是提供模擬實現。方法描述如下:

    1) 創建用戶方法:createUser(User user)

    通過傳入User對象作為參數來才創建用戶;

    2) 通過用戶名獲取用戶信息方法:getUser(String loginName)

    根據用戶名獲取某用戶對象,該方法返回的是一個User對象;

    3) 返回所有用戶的數組方法:getUserArray()

    返回為User數組;

    4) 返回所有用戶的列表的方法:getUserList()

    返回為List對象,放入的對象為User類型。

    二.             數據對象User.java

    在上篇的例子中,src/webservice目錄下新建example2目錄,并在example2目錄下建立User.java文件,下面看看數據對象User.java的內容,代碼如下:

    package webservice.example2;

    import java.util.Date;

    /**
     *用戶對象.  
     *
    @author<a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
     *@version1.0
     *Creationdate:2007-9-28-上午10:42:44
     
    */

    publicclass User 
    implements java.io.Serializable {
        privatestaticfinallongserialVersionUID 
    = 1L;

        
    /**用戶名*/
        
    private String loginName;

        
    /**用戶密碼*/
        
    private String password;

        
    /**手機號*/
        
    private String mobile;

        
    /**創建時間*/
        
    private Date createTime;

        
    public Date getCreateTime() {
           
    return createTime;
        }


        
    public void setCreateTime(Date createTime) {
           
    this.createTime = createTime;
        }


        
    public String getLoginName() {
           
    return loginName;
        }


        
    public void setLoginName(String loginName) {
           
    this.loginName = loginName;
        }


        
    public String getMobile() {
           
    return mobile;
        }


        
    public void setMobile(String mobile) {
           
    this.mobile = mobile;

        }


        
    public String getPassword() {
           
    return password;
        }


        
    public void setPassword(String password) {
           
    this.password = password;
        }


        
    public String toString() {
           StringBuffer sb 
    = new StringBuffer();
           sb.append(
    "loginName=" + this.loginName);
           sb.append(
    "|password=" + this.password);
           sb.append(
    "|mobile=" + this.mobile);
           sb.append(
    "|createDate=" + this.createTime);
           
    return sb.toString();
        }

    }


    三.             用戶業務類UserService.java及其實現UserServiceImpl.java

    下面讓我們來看看本例的業務邏輯接口類UserService.java的內容:

    package webservice.example2;

    import java.util.List;

    /**
     *用戶業務類.
     *
    @author<a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
     *@version1.0
     *Creationdate:2007-9-28-上午10:37:09
     
    */

    publicinterface UserService 
    {
        
    /**
         *獲取用戶對象.
         *@paramloginName用戶名
         *@return返回用戶對象
         
    */

        
    public User getUser(String loginName);

        
    /**
         *創建用戶.
         *@paramuser用戶對象
         *@return返回創建的對象的toString()方法返回的內容
         
    */

        
    public String createUser(User user);

        
    /**
         *獲取用戶信息數組.
         *@return返回用戶信息數組
         
    */

        
    public User[] getUserArray();
        
        
    /**
         *獲得用戶信息列表.
         *@return返回用戶信息列表
         *
    @author<a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
         *Creationdate:2007-9-28-下午12:55:37
         
    */

        
    public List<User> getUserList();
    }


    它的實現類UserServiceImpl.java的內容如下:

    package webservice.example2;

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

    /**
     *用戶業務實現類.
     *
    @author<a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
     *@version1.0
     *Creationdate:2007-9-28-上午10:54:11
     
    */

    publicclass UserServiceImpl 
    implements UserService {
        
    /**
         *獲取用戶對象.
         *@paramloginName用戶名
         *@return返回用戶對象
         
    */

        
    public User getUser(String loginName) {
           User user 
    = new User();
           user.setLoginName(loginName);
           user.setPassword(
    "12345678");
           user.setMobile(
    "13812345678");
           user.setCreateTime(
    new Date());
           
    return user;
        }


        
    /**
         *創建用戶.
         *@paramuser用戶對象
         *@return返回創建的對象的toString()方法返回的內容
         
    */

        
    public String createUser(User user) {
           user.setCreateTime(
    new Date());
           
    return user.toString();
        }


        
    /**
         *獲取用戶信息數組.
         *@return返回用戶信息數組
         
    */

        
    public User[] getUserArray() {
           User[] userList 
    = new User[4];
           userList[
    0= getUser("阿蜜果");
           userList[
    1= getUser("sterning");
           userList[
    2= getUser("娟子");
           userList[
    3= getUser("老肖");
           
    return userList;
        }


        
    /**
         *獲得用戶信息列表.
         *@return返回用戶信息列表
         *
    @author<a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
         *Creationdate:2007-9-28-下午12:55:37
         
    */

        
    public List<User> getUserList() {
           List
    <User> userList = new ArrayList<User>();
           userList.add(getUser(
    "阿蜜果"));
           userList.add(getUser(
    "sterning"));
           userList.add(getUser(
    "娟子"));
           userList.add(getUser(
    "老肖"));
           
    return userList;
        }

    }

    注意:getUserList()方法返回的List中需要采用泛型,不然會部署失敗。

    到此為止,我們的業務已經完成,剩下的工作只是修改配置文件和編寫測試類來進行測試。讓我們繼續往下走吧。

    四.             配置文件applicationContext.xmlxfire-servlet.xml的修改

    在本小節中,我們需要修改配置文件。首先在applicationContext.xml文件中添加用戶邏輯bean的定義,添加的代碼如下:

    <bean id="UserBean" class="webservice.example2.UserServiceImpl"/>

    接下來我們還需要修改xfire-servlet.xml文件來暴露我們的Web Service,修改后的該文件內容如下所示:

    <entry key="/UserService.ws">                    

    <ref bean="UserService" />                

    </entry>

    并添加如下bean的定義:

    <bean id="UserService" parent="baseWebService">
           
    <!-- 業務服務bean -->
           
    <property name="serviceBean" ref="UserBean" />
           
    <!-- 業務服務bean的窄接口類 -->
           
    <property name="serviceClass" value="webservice.example2.UserService" />
        
    </bean>

       我們的Web Service已經開發完成,啟動本項目后,可通過瀏覽器訪問:http://localhost:8080/webservice_helloworld/UserService.ws?wsdl,我們可以在瀏覽器中看到該例的WSDL信息。

    五.             Web Service測試

    在本小節我們將對上述完成的Web Service進行測試,首先我們在src目錄下的client.xml文件增加如下內容:

    <!-- 獲取用戶信息的例子 -->
         
    <bean id="testUserWebService" class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean">
           
    <property name="serviceClass">              <value>webservice.example2.UserService</value> 
           
    </property>      
            
    <property name="wsdlDocumentUrl">         
    <value>http://localhost:8080/webservice_helloworld/UserService.ws?wsdl</value>       
            
    </property>      
         
    </bean>

         接著我們在src/test目錄下建立UserServiceClientTest.java類,編寫測試代碼如下:

    package test;

    import java.util.List;

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;

    import webservice.example2.User;
    import webservice.example2.UserService;

    /**
     * 用戶業務測試類.    
     * 
    @author <a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
     * 
    @version 1.0
     * Creation date: 2007-9-28 - 下午12:03:06
     
    */

    public class UserServiceClientTest {
        
    public static void main(String[] args) throws Exception {
            UserServiceClientTest test 
    = new UserServiceClientTest();
            test.testClient();
        }
     
        
        
    public void testClient() throws Exception {
            ApplicationContext ctx 
    = new ClassPathXmlApplicationContext(
                    
    "client.xml");    
            UserService userService 
    = (UserService) ctx.getBean("testUserWebService");
            
            
    //測試getUser()方法
            System.out.println("--------------getUser()------------");
            User user 
    = userService.getUser("阿蜜果");
            System.out.println(user);
            
            
    //測試getArray()方法
            System.out.println("--------------getUserArray()------------");
            User[] userArray 
    = userService.getUserArray();
            
    for (int i = 0; i < userArray.length; i++{
                System.out.println(
    "i=" + i + "|" + userArray[i]);
            }

            
            
    //測試createUser()方法
            System.out.println("--------------createUser()------------");
            User newUser 
    = new User();
            newUser.setLoginName(
    "離離");
            newUser.setPassword(
    "123");
            newUser.setMobile(
    "13666666666");
            String result 
    = userService.createUser(newUser);
            System.out.println(result);
            
            
    //測試getUserList()方法
            List<User> userList = userService.getUserList();
            System.out.println(
    "--------------getUserList()------------");
            
    for (int i = 0; i < userList.size(); i++{
                System.out.println(
    "i=" + i + "|" + userList.get(i));
            }

        }

    }

        大家可以運行該類,來查看運行效果。
        運行有問題的人可在此留下你們的email給我,我將這個工程發給你們。

    posted on 2007-09-28 13:50 阿蜜果 閱讀(15194) 評論(102)  編輯  收藏 所屬分類: Web Service
    評論共2頁: 上一頁 1 2 


    FeedBack:
    # re: 使用XFire+Spring構建Web Service(二)
    2007-09-28 13:57 | 千里冰封
    呵呵,不錯,女孩搞程序的本來就少,搞得這么牛的就更少了:)  回復  更多評論
      
    # re: 使用XFire+Spring構建Web Service(二)
    2007-09-28 15:19 | Bruce Luo
    親愛的阿米果妹妹,親一個!好樣的!  回復  更多評論
      
    評論共2頁: 上一頁 1 2 
    <2007年9月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

          生活將我們磨圓,是為了讓我們滾得更遠——“圓”來如此。
          我的作品:
          玩轉Axure RP  (2015年12月出版)
          

          Power Designer系統分析與建模實戰  (2015年7月出版)
          
         Struts2+Hibernate3+Spring2   (2010年5月出版)
         

    留言簿(263)

    隨筆分類

    隨筆檔案

    文章分類

    相冊

    關注blog

    積分與排名

    • 積分 - 2294312
    • 排名 - 3

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产亚洲美女精品久久久久狼| 亚洲娇小性xxxx色| 精品成在人线AV无码免费看| 亚洲综合偷自成人网第页色| 国产一区视频在线免费观看| XXX2高清在线观看免费视频| 亚洲精品国产电影午夜| 四虎永久成人免费| 日韩精品久久久久久免费| 亚洲性无码AV中文字幕| 亚洲日韩在线中文字幕第一页| 6080午夜一级毛片免费看| 精品国产_亚洲人成在线| 在线亚洲精品自拍| 毛片a级毛片免费播放下载 | 亚洲图片激情小说| 免费播放春色aⅴ视频| 1区2区3区产品乱码免费| 青青免费在线视频| 亚洲伊人色一综合网| 亚洲性在线看高清h片| 岛国av无码免费无禁网站| 日韩在线观看视频免费| 亚洲国产成人在线视频| 国产亚洲精品资在线| 国产在线观看免费观看不卡| 久久久久久国产a免费观看不卡| 亚洲色欲色欲www| 亚洲AV无码国产精品麻豆天美| 免费国产a国产片高清网站| 国产又黄又爽又猛免费app| 久久国产精品免费观看| 特级毛片免费播放| 亚洲色欲色欲www| 亚洲熟妇无码爱v在线观看| 亚洲三区在线观看无套内射| 无码国产亚洲日韩国精品视频一区二区三区 | 亚洲剧场午夜在线观看| 亚洲成AV人片一区二区密柚| 亚洲精品tv久久久久| 国产免费观看黄AV片|