MyEclipse限时秒杀火热进行中,只剩最后1天了!!活动火热开启中>>
1. 选择File>New Project,选择EJB Project,然后单击Next。
2. 在Project name字段中输入firstejb。
3. 为Specification Level选择J2EE 1.3选项,从目标运行时的下拉列表中选择MyEclipse Generic Runtime for J2EE 1.3,然后单击Next。
Project Name – 必须是有效的Eclipse Java项目名称。
Location – 取消选中复选框,为新项目及其资源指定自定义文件系统的位置。
Directory – 该项目的默认文件系统位置位于MyEclipse启动的工作空间文件夹下,您可以在工作空间文件夹之外选择另一个文件位置。
注意:您不能在工作区文件夹中选择备用文件夹,因为Eclipse不允许这样。
Source Folder – Java源文件夹将包含Java包、*.java文件和属性文件。 此文件夹的内容将添加到项目的Java构建路径中。
注意:如果指定了非默认值,则需要相应地更新本文档中的XDoclet默认设置。
JEE Specification Level – 指定JEE规范合规级别。确保为应用程序需要的JEE功能选择适当的规范级别,并且您的目标部署应用程序服务器支持此规范级别。
4. 单击默认的源文件夹,然后单击Edit。将文件夹名称更改为src,然后单击OK。
5. 单击Next,然后取消选中Generate scaffolding code复选框。
6. 单击Finish。剩余的向导页面从MyEclipse EJB项目模板中导入,此模板在MyEclipse JEE Project参数中定义。
下图描绘了新的EJB项目结构。新创建的EJB项目包含一个默认的ejb-jar.xml文件,但在此过程中,没有EJB存在,并且ejb-jar.xml文件出现并带有错误标记。随后使用XDoclet技术创建所需的EJB定义。
MyEclipse中的EJB 2.x开发使用了EJB向导和集成XDoclet支持的组合。 每个EJB由三个基本部分组成:
bean类是主要的实现问题,因为它提供了EJB的功能。从使用XDoclet注释的bean类中,可以自动生成bean的Remote和Home接口以及ejb-jar.xml部署描述符中的EJB条目。2-part示例演示了创建名为Trader EJB的无状态会话bean的过程。Part 1重点介绍使用MyEclipse EJB Creation向导和XDoclet支持来创建基本的可部署Trader EJB。 Part 2介绍了向Trader EJB实施业务服务或功能的过程。
Trader EJB示例为销售和购买股票提供了简化的服务。由于本文档的范围是对MyEclipse EJB开发功能的快速介绍,因此Trader EJB不会处理事务或集成企业资源(如数据库或消息队列)。
首先使用EJB创建向导创建Trader bean实现类。 在创建Trader bean类之后,您将生成Remote和Home接口以及bean的ejb-jar.xml条目。
1. 在资源管理器中选择firstejb项目,选择File>New>Other。
2. 展开MyEclipse>EJB,选择EJB2 Session Bean,然后单击Next。
3. 源文件夹默认输入,这是新EJB类的放置位置。在Package字段中输入Type com.genuitec.trader.ejb,您可以浏览现有软件包,但如果软件包不存在,则会为您创建。
注意:XDoclet的默认配置要求包名以.ejb结尾。可以使用其他软件包后缀,但这样做需要在生成之前手动更新项目的EJB XDoclet设置。
4. 在Name字段中输入TraderBean,这是创建的EJB bean实现类的名称。“Bean”后缀是用于标识bean实现类的约定。当为相关EJB文件创建XDoclet标签时,EJB向导会删除此后缀。
5. 单击Finish来接受剩余的默认值。
创建TraderBean实现类并在Java编辑器中打开。请注意EJB创建向导如何自动插入XDoclet EJB标签到定义的EJB接口和部署的详细信息中。
TraderBean源代码,用于无状态会话的EJB所需的XDoclet标签。
6. 修改TraderBean XDoclet jndi-name标签来匹配下一个,以便与其他MyEclipse文档中使用的示例更一致。
jndi-name = "ejb/com/genuitec/trader/ejb/TraderHome"
7. 按CTRL + S保存TraderBean.java类。
默认情况下,MyEclipse EJB项目未配置使用XDoclet功能。本节主要为大家介绍使用XDoclet支持,并执行XDoclet代码生成来启用和配置firstejb EJB项目的步骤,以便获取Trader EJB的依赖源代码和部署组件。
首先将Standard EJB XDoclet配置添加到firstejb项目。本节的最终目标是生成XDoclet配置,用于创建MyEclipse执行的ANT脚本,以便生成部署Trader EJB所需的其他EJB组件。
1. 右键单击firstejb,然后选择Properties,展开MyEclipse,然后选择XDoclet。
2. 单击Add Standard,选择Standard EJB,然后单击OK。
注意:除了MyEclipse提供的预配置XDoclet模块,您还可以创建自己的XDoclet自定义配置。 集成自定义XDoclet模块的过程超出了本文档的范围。
将标准EJB模块添加到列表后,选择它来显示其包含的doclet。注意ejbdoclet出现在左下角的列表中,jbdoclet下的subdoclets包含必需和可选的子任务。 许多子事件不适用于简单的无状态会话bean,如Trader EJB。
3. 删除不需要的子任务,保留只有下面图像中显示的列表。想要删除子任务,只需单击每个子任务,然后选择Remove。此配置中的每个项目都表示EJB XDoclet子任务。
4. (可选)如果在创建项目时指定了非默认源文件夹,则必须更新以下元素:ejbdoclet>destDir、deploymentdescriptor>destDir和fileset>src的项目相对路径属性。选择左下方面板中的每一个元素,然后在右下方的面板中查看和修改其各自的属性。
5. 单击Build标签来配置项目的XDoclet构建文件策略。
注意:如果这是一个新项目,则将Build策略设置为默认策略,因此您可以跳到步骤7。
6. 选择Use dynamic build specificationpolicy选项。
如果您正在使用已经包含XDoclet配置的现有项目,则可以选择删除不必要的xdoclet-build.xml文件。它不再需要有关这些政策的更详细说明,请参见下表。默认情况下,新项目设置为使用动态构建策略。 您可以在参数页上覆盖该项目的默认值。
警告! 当项目的XDoclet配置属性被修改时,项目的xdoclet-build.xml文件将被新版本覆盖。当必须手动管理xdoclet-build.xml文件时,才使用Use the Use XDoclet-build.xml file策略。
7. 单击OK,XDoclet配置保存到名为.xdoclet的文件中。另外,如果启用了“Use xdoclet-build.xml file”构建策略,MyEclipse将从XDoclet设置生成一个名为xdoclet-build.xml的文件,并将该文件存储在项目的根文件夹中。
XDoclet能够生成server-specific部署描述符。
注意:稍后您将看到firstejb部署到本地JBoss服务器的步骤,这些步骤使用JBoss子任务。
1. 右键单击firstejb,选择Properties,展开MyEclipse,然后选择XDoclet。
2. 选择Standard EJB来查看任务,右键单击ejbdoclet,然后选择Add。
3. 选择jboss,然后单击OK。
4. 选择jboss subtask,双击destDir属性,在Value字段中输入src/META-INF,然后单击OK。
5. 在Properties窗口单击OK。
通常每次更改XDoclet EJB配置、应用程序服务器设置或修改任何EJB bean实现类的XDoclet注释后,都应执行XDoclet。
现在是在firstejb项目上执行XDoclet并测试新的XDoclet设置的好机会,因为Trader EJB尚未使用新的XDoclet注释业务方法进行扩展。
1. 右键单击firstejb,然后选择MyEclipse>Run XDoclet。
2. 监视来自xdoclet-build脚本的异常输出消息的控制台视图。
在运行XDoclet之后,firstejb项目包括Trader和TraderHome接口的新版本以及ejb-jar.xml和jboss.xmldeployment描述符。
注意:当您在第2节中创建TraderBean.java类时,将Java包名称指定为com.genuitec.trader.ejb,并强调包名应以.ejb结尾。这是因为标准EJB XDoclet包替换子任务可以创建以.interfaces结尾的相应Java包名称,并将生成的EJB和Home接口添加到其中。在这个例子中,创建了com.genuitec.trader.interfaces包,它包含了Trader EJB和TraderHome接口。
在Part 1中,您看到了创建TraderBean类的过程。 在本节中,您将业务方法以及XDoclet注释添加到TraderBean类中,然后使用XDoclet来更新先前创建的Trader和TraderHome接口。
创建初始的TraderBean.java类时,EJB创建的向导添加了一个示例业务方法,您可以将其用作添加自己业务方法的模式。注意这个方法包括javadoc tag @ejb.interface-method, 此自定义ejbdoclet标记将该方法标识为EJB接口方法实现的。当XDoclet在此类上运行时,Trader.java EJB接口类被修改为包含所有@ejb.interface-method注释的方法。
/** * An example business method * * @ejb.interface-method view-type = "remote" * * @throws EJBException Thrown if method fails due to system-level error. */ public void replaceWithRealBusinessMethod() throws EJBException { // rename and start putting your business logic here< BR > } *
1. 双击TraderBean.java在编辑器中打开。
2. 在最后一个括号前添加以下两种业务方法,然后按CTRL + S进行保存。
/** * Buys shares of a stock for a named customer. * * @param customerName String Customer name * @param stockSymbol String Stock symbol * @param shares int Number of shares to buy * @return Number of shares purchased * * @ejb.interface-method */ public int buy(String stockSymbol, int shares) { System.out.println("Buying "+shares+" shares of "+stockSymbol + ". Good move."); return shares; } /** * Sells shares of a stock for a named customer. * * @param customerName String Customer name * @param stockSymbol String Stock symbol * @param shares int Number of shares to buy * @return The number for shares sold * * @ejb.interface-method */ public int sell(String stockSymbol, int shares) { System.out.println("Selling "+shares+" shares of "+stockSymbol); return shares; }
3. 在firstejb项目上运行XDoclet来同步Trader和TraderHome类和部署描述符。
4. 在com.genuitec.trader.interfaces包中双击Trader.java。 注意添加buy()和sell()业务方法。
/* * Generated by XDoclet - Do not edit! */ package com.genuitec.trader.interfaces; /** * Remote interface for Trader. * @author XDoclet */ public interface Trader extends javax.ejb.EJBObject { /** * Buys shares of a stock for a named customer. * @param customerName String Customer name * @param stockSymbol String Stock symbol * @param shares int Number of shares to buy * @return Number of shares purchased */ public int buy( java.lang.String stockSymbol,int shares ) throws java.rmi.RemoteException; /** * Sells shares of a stock for a named customer. * @param customerName String Customer name * @param stockSymbol String Stock symbol * @param shares int Number of shares to buy * @return The number for shares sold */ public int sell( java.lang.String stockSymbol,int shares ) throws java.rmi.RemoteException; }
1. 右键单击Servers视图,然后选择New>Server,选择您安装的JBoss版本。
2. 继续通过向导配置服务器连接器。
注意:确保选择一个完整的JDK,而不仅仅是一个JRE。 如果只列出一个JRE,您将需要添加一个新的JDK。
3. 在New Server向导的Add and Remove页面上,在Available列中选择firstejb项目。
4. 单击Add。您可以使用Configured列中模块旁边的下拉菜单来选择打包或展开部署,单击Finish。
5. 在Servers视图中右键单击服务器,然后选择Start。
6. 检查消息日志来指示EJB已成功部署。
注意:独立EJB测试需要一个分布式测试客户端,为Trader EJB创建测试客户端是一项非常简单的工作。