JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j 開發Session Bean例解(4)

來源:互聯網
上載者:User
session
作者:Junsan Jin

日期:2005-3-30

版本:1.0

信箱:junsan21@126.com ; junnef21@sohu.com

聲明:本人保留本文的所有權利。







第四部分:測試Session bean



在前面的三個部分已經完整地講述了一個Session Bean的建立過程。下面來建立測試工程。




 


添加測試類別:



在右邊的樹型菜單中選中com.inspiresky.trader右鍵 〉new 〉package,在對話方塊的輸入框最後添加user,建立com.inspiresky.trader.user包。



選中com.inspiresky.trader.user右鍵 〉new 〉class,建立UserInfo.java類,代碼如下。



----------------------------------



UserInfo.java



----------------------------------



package com.inspiresky.trader.user;




 


import javax.naming.InitialContext;



import trader.UserInfoLocalHome;



import trader.UserInfoLocal;



import javax.naming.NamingException;



import java.rmi.RemoteException;



import javax.ejb.CreateException;



import java.util.HashMap;



import java.util.Date;




 


/**



 * <p>Title: </p>



 *



 * <p>Description: </p>



 *



 * <p>Copyright: Copyright (c) 2005</p>



 *



 * <p>Company: </p>



 *



 * @author not attributable



 * @version 1.0



 */



public class UserInfo {




 


    public UserInfo() {



    }




 


    public HashMap getUserInfo(){



        HashMap map = new HashMap();




 


        try {



            UserInfoLocal local = (UserInfoLocal) findEjb();



            map = local.showUserInfo();



        } catch (CreateException ex) {



            System.out.println("Error 1");



        } catch (RemoteException ex) {



            System.out.println("Error 2");



        } catch (NamingException ex) {



            System.out.println("Error 3");



        }




 


        return map;



    }




 


    private Object findEjb() throws NamingException, RemoteException,



        CreateException {



        javax.naming.Context context  = new javax.naming.InitialContext();




 


        Object obj = context.lookup("UserInfoLocal");




 


        UserInfoLocalHome home = (UserInfoLocalHome)javax.rmi.PortableRemoteObject.narrow(obj,



            UserInfoLocalHome.class);




 


        UserInfoLocal local = (UserInfoLocal)home.create("Jak","12",new Date().toString());




 


        return local;



    }



}




 


添加客戶類:



同樣的方法在同一個包中建立類Test.java,代碼如下。



---------------------------------



Test.java



-----------------------------------



package com.inspiresky.trader.user;




 


import javax.servlet.*;



import javax.servlet.http.*;



import java.io.*;



import java.util.*;



import com.inspiresky.trader.user.UserInfo;




 


public class Test extends HttpServlet {



    private static final String CONTENT_TYPE = "text/html; charset=GBK";



    private HashMap map;




 


    //Initialize global variables



    public void init() throws ServletException {



        UserInfo user = new UserInfo();



        map = user.getUserInfo();



    }




 


    //Process the HTTP Get request



    public void doGet(HttpServletRequest request, HttpServletResponse response) throws



        ServletException, IOException {



        response.setContentType(CONTENT_TYPE);



        PrintWriter out = response.getWriter();



        out.println("<html>");



        out.println("<head><title>Test</title></head>");



        out.println("<body bgcolor=\"#ffffff\">");



        out.println(map.toString());



        out.println("</body>");



        out.println("</html>");



        out.close();



    }




 


    //Process the HTTP Post request



    public void doPost(HttpServletRequest request, HttpServletResponse response) throws



        ServletException, IOException {



        doGet(request, response);



    }




 


    //Process the HTTP Put request



    public void doPut(HttpServletRequest request, HttpServletResponse response) throws



        ServletException, IOException {



    }




 


    //Process the HTTP Delete request



    public void doDelete(HttpServletRequest request,



                         HttpServletResponse response) throws ServletException,



        IOException {



    }




 


    //Clean up resources



    public void destroy() {



    }



}




 


修改web.xml:



在第二部分我們曾修改過web.Xml,同樣的方法,我們接著添加如下的部分:



<servlet>



    <servlet-name>test</servlet-name>



    <servlet-class>com.inspiresky.trader.user.Test</servlet-class>



  </servlet>



  <servlet-mapping>



    <servlet-name>test</servlet-name>



    <url-pattern>/test</url-pattern>



  </servlet-mapping>




 


修改後的web.xml檔案的全部內容為:



----------------------------------------



web.xml



----------------------------------------



<?xml version="1.0" encoding="UTF-8"?>



<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">



  <display-name>WebTrader</display-name>



  <servlet>



    <servlet-name>log4j-init</servlet-name>



    <servlet-class>com.inspiresky.trader.init.Log4jInit</servlet-class>



    <init-param>



      <param-name>log4j-init-file</param-name>



      <param-value>WEB-INF/log4j.properties</param-value>



    </init-param>



    <load-on-startup>1</load-on-startup>



  </servlet>



  <servlet>



    <servlet-name>test</servlet-name>



    <servlet-class>com.inspiresky.trader.user.Test</servlet-class>



  </servlet>



  <servlet-mapping>



    <servlet-name>test</servlet-name>



    <url-pattern>/test</url-pattern>



  </servlet-mapping>



</web-app>




 


建立J2EE應用程式部屬包:



前面已經完成了工程的所有的開發工作,為了部署的方便,我們現在來建立一個應用程式的部署套件。



選擇菜單:new 〉enterprise 〉Application Module(EAR)〉 OK 〉 Create empty application module 〉 Next 〉 輸入名稱 ETrader 〉 Next 〉選擇Trader 〉Next 〉 選擇WebTrader 〉Finish。




 


編譯工程:



在樹型菜單中右鍵點擊ETader 〉Rebuilder。沒有錯誤提示則編譯成功。




 


啟動JBoss:



運行D:\jboss-4.0.2RC1\bin\run.bat,啟動JBoss。因為我們在path中設定了路徑,所以也可以直接在命令列下運行run命令。




 


部署應用程式:



在樹型菜單中右鍵點擊ETader 〉deploy option for “ETrader.ear” 〉 deploy。



下面的兩個命令分別是重新部署和卸載應用時使用。




 


運行程式:



開啟IE瀏覽器,在地址欄中輸入



http://localhost:8080/WebTrader/test



此時,會顯示



{userName=Jak, loginTime=Wed Mar 30 11:26:18 CST 2005, userAge=12}



表明我們的程式已經正常運行了。




 


OK,到此一個簡單的Session Bean應用就開發完成了。這裡理論的東西較少,只是希望能用例子給大家一些啟示,能夠更好的理解和應用我們所看到的一些關於J2EE的一些理論,更好的熟悉我們所用的工具。



成文倉促,難免有錯誤疏漏之處,歡迎指正。


相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。