科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j开发 Session Bean例解(4)

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在前面的三个部分已经完整地讲述了一个Session Bean的建立过程。下面来建立测试工程。

作者:心灵之光 来源:CSDN 2008年3月14日

关键字: Session Bean 开发 java

  • 评论
  • 分享微博
  • 分享邮件
第四部分:测试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 ModuleEAR)〉 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的一些理论,更好的熟悉我们所用的工具。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章