当前位置导航:炫浪网>>网络学院>>网页制作>>JSP教程

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


作者:Junsan Jin

日期:2005-3-30

版本:1.0

信箱:[email protected] ; [email protected]

声明:本人保留本文的所有权利。







第四部分:测试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的一些理论,更好的熟悉我们所用的工具。



成文仓促,难免有错误疏漏之处,欢迎指正。
相关内容
赞助商链接