分享
 
 
 

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

王朝java/jsp·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

作者: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的一些理论,更好的熟悉我们所用的工具。

成文仓促,难免有错误疏漏之处,欢迎指正。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有