您的位置:首页 > 其它

JBossIDE Eclispe 开发EJB2.1实例[原创]

2005-10-28 12:16 561 查看
EJB2.1开发实例Create by:forevering 2005-10-27

1.环境配置

1)JDK1.5 文件名:jdk-1_5_0_05-windows-i586-p.exe下载地址:https://jsecom16k.sun.com/ECom/EComActionServlet;jsessionid=31A76905496B86DCF9BCFE1CACE798952)编译器采用JBoss Eclipse IDE1.5RC1 文件名:JBossIDE-1.5RC1-Bundle-win32.zip下载网址:http://www.jboss.com/products/jbosside/downloads3)应用服务器:JBoss4.0.3 (JBoss4.0版本集成Tomcat) 文件名:jboss-4.0.3-installer.jar下载网址:http://www.jboss.com/products/jbossas/downloads4)安装jdk-1_5_0_05-windows-i586-p.exe,将下载好的JBossIDE-1.5RC1-Bundle-win32.zip解压都到某个目录即可,本例D:/eclipse;双击jboss-4.0.3-installer.jar即可安装(注意:不要将.jar文件与winrar建立关联),本例安装目录D:/jboss-4.0.3。5)设置环境变量,本例环境变量如下:JAVA_HOME= C:/Program Files/Java/jdk1.5.0JBOSS_HOME=D:/jboss-4.0.3Path=%JAVA_HOME%/bin;%JBOSS_HOME%/bin;Classpath=%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;6)启动JBoss,在命令行中输入:>cd D:/jboss-4.0.3/bin 回车进入bin目录D:/jboss-4.0.3/bin>run.bat 回车运行jboss如图: 即可看到JBoss启动画面,如图 在IE浏览器中输入:http://localhost:8080 回车即可看到JBoss欢迎页面至此,环境搭建完毕。

2.开发EJB应用

2.1 开发Session Bean

1)启动eclipse2)建立J2EE1.4项目,File->New->Project点击 Next,输入项目名称,本例为Fibonaci点击 Next,在Source一栏中点击 Add Folder,输入src用来存放项目的源码、配置文件等。点击Finish项目建立完成,目录结构如下图:3)创建Session Bean,点击src New->Other..选择Session Bean,点击 Next输入包名:fibonaci.ejb,文件名:FiboBean点击 Finish完成Session Bean,目录结构如下添加业务逻辑方法,点击FiboBean J2EE->Add Business Method方法名:compute 数据类型:double[],参数int number[]点击Finish完成代码如下:public double[] compute(int number) { if (number < 0) { throw new EJBException("Argument should be positive"); } double[] suite = new double[number + 1]; suite[0] = 0; if (number == 0) { return suite; } suite[1] = 1; for (int i = 2; i <= number; i++) { suite[i] = suite[i - 1] + suite[i - 2]; } return suite;}

2.2 XDoclet设置EJB配置

1)EJB设置点击项目右键->Properties->XDoclet Configurations->Add…选中EJB,添加ejbdoclet设置ejbdoclet属性:a) destDir为src b)ejbSpec为2.1添加fileset,属性:a) dir为src b) includes为**/*Bean.java添加deploymentdescriptor,属性 destDir为src/META-INF添加jboss,属性:a) Version为4.0 b) destDir为src/META-INF添加packageSubstitution,属性a) package为ejb b)substituteWith为interfaces添加homeinterface和remoteinterface,不需要设置属性点击OK,选中项目右键Run XDoclet 可以看到Console信息 运行成功后,项目中fibonaci.interfaces和META-INF被创建。至此,ejb创建完成。

2.3开发Servlet

创建HTTP Servlet 输入Package:fibonaci.web Name:ComputeServlet,选中init()/service()/doPost()方法,点击Finish。在项目中看到ComputeServlet.java,添加代码ComputeServlet.java代码:package fibonaci.web; import javax.rmi.PortableRemoteObject;import javax.servlet.http.HttpServlet; import javax.servlet.ServletException;import javax.servlet.ServletConfig;import java.io.*;import java.io.IOException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.naming.Context;import javax.naming.InitialContext;import fibonaci.interfaces.Fibo;import fibonaci.interfaces.FiboHome; public class ComputeServlet extends HttpServlet { private FiboHome home; public ComputeServlet() { super(); } public void init(ServletConfig config) throws ServletException { try { Context context = new InitialContext(); Object ref = context.lookup("java:/comp/env/ejb/Fibo"); home = (FiboHome)PortableRemoteObject.narrow(ref, FiboHome.class); } catch (Exception e) { throw new ServletException("Lookup of java:/comp/env/ failed"); } } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.println("<html><head><title>"); out.println("Fibonaci Computation"); out.println("</title></head>"); out.println("<body>"); out.println("<h1>"); out.println("Fibonaci Computation"); out.println("</h1>"); try { Fibo bean = home.create(); int limit = 0; String value = req.getParameter("limit"); if (value != null) { try { limit = Integer.parseInt(value); } catch (Exception e) { } } double[] result = bean.compute(limit); bean.remove(); out.println("<p>"); out.print("The "); out.print(limit); out.print(" first Fibonacci numbers "); for (int i = 0; i < result.length; i++) { out.println("<br>"); out.println(i); out.println(" : "); out.println(result[i]); } out.println("</p>"); } catch(Exception e) { out.println(e.getMessage()); e.printStackTrace(out); } finally { out.println("</body></html>"); out.close(); } }}代码添加完毕后,需要添加XDoclet tags,在开始注释处输入@web,如下图:设置内容如下:/** * Servlet Class * @web.servlet name="Compute" * display-name="Computation Servlet" * description="Servlet that compute Fibonacci suite" * @web.servlet-mapping url-pattern="/Compute" * @web.ejb-ref name="ejb/Fibo" * type="Session" * home="fibonacci.interfaces.FiboHome" * remote="fibonacci.interfaces.Fibo" * @web.servlet-init-param name="A parameter" * value="A value" * @jboss.ejb-ref-jndi ref-name="ejb/Fibo" * jndi-name="ejb/Fibo" */

2.4 XDoclet设置web配置

添加Web/webdoclet,属性destDir为src/WEB-INF添加fileset,属性:a) di为src b) includes为**/*Servlet.java添加deploymentdescriptor,属性:Servletspec为2.4添加jbosswebxml,属性:Version为4.0点击OK,XDoclet设置完成。点击项目右键->Run XDoclet。运行成功后,WEB-INF被创建到项目中。创建docroot目录,在docroot目录中创建index.htmlindex.html代码:[align=left]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">[/align][align=left]<html> [/align][align=left] <head>[/align][align=left] <title>Fibonacci Application</title>[/align][align=left] </head>[/align][align=left] <body bgcolor="#FFFFFF">[/align][align=left] <h1>Fibonacci Form</h1>[/align][align=left] <form action="Compute" method="POST">[/align][align=left] <table cellspacing="2" cellpadding="2" border="0">[/align][align=left] <tr>[/align][align=left] <td>Limit :</td>[/align][align=left] <td>[/align][align=left] <input type="text" name="limit" [/align][align=left] value="50"></input>[/align][align=left] </td>[/align][align=left] </tr>[/align][align=left] <tr>[/align][align=left] <td>[/align][align=left] <input type="submit" name="Compute"[/align][align=left]value="Compute"></input>[/align][align=left] </td>[/align][align=left] <td> [/align][align=left] </td>[/align][align=left] </tr>[/align][align=left] </table>[/align][align=left] </form>[/align][align=left] </body> [/align]</html>

3 部署文件设置

3.1创建application.xml

点击src/META-INF目录,右键New->Other,选择EAR1.4 Deployment Descriptorapplication.xml内容[align=left]<?xml version="1.0" encoding="UTF-8"?>[/align][align=left]<application version="1.4"[/align][align=left] xmlns="http://java.sun.com/xml/ns/j2ee"[/align][align=left] xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" [/align][align=left] xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee[/align][align=left] http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">[/align][align=left] <display-name>Sum Application</display-name>[/align][align=left] <module>[/align][align=left] <ejb>FiboEJB.jar</ejb>[/align][align=left] </module>[/align][align=left] <module>[/align][align=left] <web>[/align][align=left] <web-uri>FiboWeb.war</web-uri>[/align][align=left] <context-root>/fibo</context-root>[/align][align=left] </web>[/align][align=left] </module>[/align]</application>

3.2创建FiboEJB.jar

点击项目右键->Properties->Packaging Configurations添加目录点击Project Folder,选择bin目录Includes输入:fibonacci/ejb/*.class,fibonacci/interfaces/*.class添加文件点击Project File,选择ejb-jar.xmlPrefix输入:META-INF同样方式添加jboss.xml

3.3创建FiboEJB-client.jar

添加Folder:/Fibonacci/bin,Includes:fibonacci/interfaces/*.class

3.4创建FiboWeb.war

添加Folder:/Fibonacci/bin,Includes:fibonacci/web/*.class Prefix:WEB-INF/classes添加File:/Fibonacci/src/WEB-INF/web.xml,Prefix:WEB-INF添加File:/Fibonacci/src/WEB-INF/jboss-web.xml,Prefix:WEB-INF添加File:/Fibonacci/FiboEJB-client.jar,(如果没有列出,可以手动输入),Prefix:WEB-INF/lib添加Floder:/Fibonacci/docroot 设置完毕,如下图所示:

3.5创建FiboApp.ear

添加File:/Fibonacci/src/META-INF/application.xml,Prefix:META-INF添加File:/Fibonacci/FiboEJB.jar添加File:/Fibonacci/FiboWeb.war 创建完毕,如下图所示:

3.6 Run Pakaging

点击项目右键->Run Pakaging,可以看到Console信息:运行成功,可以在项目中看到生成的包文件:FiboEJB.jar,FiboEJB-client.jar,FiboWeb.war,FiboApp.ear,其中FiboApp.ear为JBoss部署文件,如图:

3.7部署应用

点击项目,右键->Debug AS->Debug选择应用服务器,本例JBoss4.0.3添加资源,选择Source->Add->Java Project。添加完后,点击Debug,可以在Console中看到JBoss启动信息。启动成功后,点击FiboApp.ear,右键->Deployment->Deploy To部署成功后可以在Console看到如下图:部署成功打开IE浏览器,在地址栏输入:http://localhost:8080/fibo,可以看到页面:点击Compute,操作成功后返回页面:至此,EJB开发、部署完毕。

4部署描述符文件

4.1 ejb-jar.xml

[align=left]<ejb-jar 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/ejb-jar_2_1.xsd" version="2.1">[/align][align=left] [/align][align=left] <description>Fibonacci EJB</description>[/align][align=left] <display-name>Generated by XDoclet</display-name>[/align][align=left] <enterprise-beans>[/align][align=left] <session >[/align][align=left] <description>Fibonacci EJB></description>[/align][align=left] <display-name>Name for Fibo</display-name>[/align][align=left] <ejb-name>Fibo</ejb-name>[/align][align=left] <home>fibonacci.interfaces.FiboHome</home>[/align][align=left] <remote>fibonacci.interfaces.Fibo</remote>[/align][align=left] <ejb-class>fibonacci.ejb.FiboBean</ejb-class>[/align][align=left] <session-type>Stateless</session-type>[/align][align=left] <transaction-type>Container</transaction-type>[/align][align=left] </session>[/align][align=left] </enterprise-beans>[/align][align=left] <assembly-descriptor >[/align][align=left] </assembly-descriptor>[/align][align=left]</ejb-jar>[/align]

4.2 jboss.xml

[align=left]<?xml version="1.0" encoding="UTF-8"?>[/align][align=left]<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN""http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd">[/align][align=left]<jboss>[/align][align=left] <enterprise-beans>[/align][align=left] <session>[/align][align=left] <ejb-name>Fibo</ejb-name>[/align][align=left] <jndi-name>ejb/Fibo</jndi-name>[/align][align=left] <method-attributes>[/align][align=left] </method-attributes>[/align][align=left] </session>[/align][align=left] </enterprise-beans> [/align][align=left] <assembly-descriptor>[/align][align=left] </assembly-descriptor>[/align][align=left] <resource-managers>[/align][align=left] </resource-managers>[/align][align=left]</jboss>[/align]

4.3 web.xml

[align=left]<?xml version="1.0" encoding="UTF-8"?>[/align][align=left]<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">[/align][align=left] <distributable/>[/align][align=left] <servlet>[/align][align=left] <description>Servlet that compute Fibonacci suite</description>[/align][align=left] <display-name>Computation Servlet</display-name>[/align][align=left] <servlet-name>Compute</servlet-name>[/align][align=left] <servlet-class>fibonacci.web.ComputeServlet</servlet-class>[/align][align=left] <init-param>[/align][align=left] <param-name>A parameter</param-name>[/align][align=left] <param-value>A value</param-value>[/align][align=left] </init-param>[/align][align=left] </servlet>[/align][align=left] <servlet-mapping>[/align][align=left] <servlet-name>Compute</servlet-name>[/align][align=left] <url-pattern>/Compute</url-pattern>[/align][align=left] </servlet-mapping>[/align][align=left] <ejb-ref >[/align][align=left] <ejb-ref-name>ejb/Fibo</ejb-ref-name>[/align][align=left] <ejb-ref-type>Session</ejb-ref-type>[/align][align=left] <home>fibonacci.interfaces.FiboHome</home>[/align][align=left] <remote>fibonacci.interfaces.Fibo</remote>[/align][align=left] </ejb-ref>[/align][align=left]</web-app>[/align]

4.4 jboss-web.xml

[align=left]<?xml version="1.0" encoding="UTF-8"?>[/align][align=left]<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.4//EN""http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd">[/align][align=left]<jboss-web> [/align][align=left] <ejb-ref>[/align][align=left] <ejb-ref-name>ejb/Fibo</ejb-ref-name>[/align][align=left] <jndi-name>ejb/Fibo</jndi-name>[/align][align=left] </ejb-ref>[/align][align=left]</jboss-web>[/align]

4.3 application.xml

[align=left]<?xml version="1.0" encoding="UTF-8"?>[/align][align=left]<application version="1.4"[/align][align=left] xmlns="http://java.sun.com/xml/ns/j2ee"[/align][align=left] xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" [/align][align=left] xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee[/align][align=left] http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">[/align][align=left] <display-name>Sum Application</display-name>[/align][align=left] <module>[/align][align=left] <ejb>FiboEJB.jar</ejb>[/align][align=left] </module>[/align][align=left] <module>[/align][align=left] <web>[/align][align=left] <web-uri>FiboWeb.war</web-uri>[/align][align=left] <context-root>/fibo</context-root>[/align][align=left] </web>[/align][align=left] </module>[/align][align=left]</application>[/align]

5参考资料

[1] JBossIDE-Tutorial-1.4.1.pdf[2] JBoss Meets Eclipse: Introducing the JBoss-IDEhttp://www.devx.com/opensource/Article/20242/1954?pf=true [3] Tutorial for building J2EE Applications using JBOSS and ECLIPSEhttp://www.tusc.com.au/tutorial/html/chap1.html [4] http://java.sun.com/xml/ns/j2ee/ [5] http://www.eclipse.org/ [6] www.jboss.org
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: