|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
作者: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的一些理论,更好的认识我们所用的工具。 成文仓促,难免有错误疏漏之处,欢迎指正。 返回类别: 教程 上一教程: 的确不错的iBATIS SQL Maps 下一教程: 电信网管中的Java客户端(二) 您可以阅读与"JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j 开发Session Bean例解(4)"相关的教程: · JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j 开发Session Bean例解(3) · JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j 开发Session Bean例解(2) · JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j 开发Session Bean例解(1) · 开发SessionBean · JSP应用程序开发中安全问题的实例解析 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |