扫码咨询 电话咨询
023-68661681
返回
顶部

Loding the player....

本视频来由慧都网提供   查看原视频>>

用XDoclet创建EJB 2 Session Bean项目

MyEclipse限时秒杀火热进行中,只剩最后1天了!!活动火热开启中>>

MyEclipse最新版下载

一、创建一个EJB项目

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。

使用MyEclipse开发Java EE应用
创建一个新的EJB项目

Project Name – 必须是有效的Eclipse Java项目名称。

Location – 取消选中复选框,为新项目及其资源指定自定义文件系统的位置。

Directory – 该项目的默认文件系统位置位于MyEclipse启动的工作空间文件夹下,您可以在工作空间文件夹之外选择另一个文件位置。

注意:您不能在工作区文件夹中选择备用文件夹,因为Eclipse不允许这样。

Source Folder – Java源文件夹将包含Java包、*.java文件和属性文件。 此文件夹的内容将添加到项目的Java构建路径中。

注意:如果指定了非默认值,则需要相应地更新本文档中的XDoclet默认设置。

JEE Specification Level – 指定JEE规范合规级别。确保为应用程序需要的JEE功能选择适当的规范级别,并且您的目标部署应用程序服务器支持此规范级别。

4. 单击默认的源文件夹,然后单击Edit。将文件夹名称更改为src,然后单击OK。

使用MyEclipse开发Java EE应用
重命名源文件夹

5. 单击Next,然后取消选中Generate scaffolding code复选框。

使用MyEclipse开发Java EE应用
禁用scaffolding生成

6. 单击Finish。剩余的向导页面从MyEclipse EJB项目模板中导入,此模板在MyEclipse JEE Project参数中定义。

下图描绘了新的EJB项目结构。新创建的EJB项目包含一个默认的ejb-jar.xml文件,但在此过程中,没有EJB存在,并且ejb-jar.xml文件出现并带有错误标记。随后使用XDoclet技术创建所需的EJB定义。

使用MyEclipse开发Java EE应用
EJB项目结构

二、创建一个Session EJB – Part 1

MyEclipse中的EJB 2.x开发使用了EJB向导和集成XDoclet支持的组合。 每个EJB由三个基本部分组成:

  • EJB Remote接口类声明业务操作对客户端可用
  • EJB实现类,也称为bean类,其中包含业务逻辑
  • EJB Home界面类,它控制bean的生命周期

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。

使用MyEclipse开发Java EE应用
创建一个新的EJB2 Session Bean

3. 源文件夹默认输入,这是新EJB类的放置位置。在Package字段中输入Type com.genuitec.trader.ejb,您可以浏览现有软件包,但如果软件包不存在,则会为您创建。

注意:XDoclet的默认配置要求包名以.ejb结尾。可以使用其他软件包后缀,但这样做需要在生成之前手动更新项目的EJB XDoclet设置。

4. 在Name字段中输入TraderBean,这是创建的EJB bean实现类的名称。“Bean”后缀是用于标识bean实现类的约定。当为相关EJB文件创建XDoclet标签时,EJB向导会删除此后缀。

5. 单击Finish来接受剩余的默认值。

使用MyEclipse开发Java EE应用
新的Session EJB详细信息

创建TraderBean实现类并在Java编辑器中打开。请注意EJB创建向导如何自动插入XDoclet EJB标签到定义的EJB接口和部署的详细信息中。

使用MyEclipse开发Java EE应用

TraderBean源代码,用于无状态会话的EJB所需的XDoclet标签。

6. 修改TraderBean XDoclet jndi-name标签来匹配下一个,以便与其他MyEclipse文档中使用的示例更一致。

jndi-name = "ejb/com/genuitec/trader/ejb/TraderHome"

7. 按CTRL + S保存TraderBean.java类。

三、配置XDoclet支持的项目

默认情况下,MyEclipse EJB项目未配置使用XDoclet功能。本节主要为大家介绍使用XDoclet支持,并执行XDoclet代码生成来启用和配置firstejb EJB项目的步骤,以便获取Trader EJB的依赖源代码和部署组件。

首先将Standard EJB XDoclet配置添加到firstejb项目。本节的最终目标是生成XDoclet配置,用于创建MyEclipse执行的ANT脚本,以便生成部署Trader EJB所需的其他EJB组件。

1. 右键单击firstejb,然后选择Properties,展开MyEclipse,然后选择XDoclet。

使用MyEclipse开发Java EE应用
XDoclet配置页面

2. 单击Add Standard,选择Standard EJB,然后单击OK。

注意:除了MyEclipse提供的预配置XDoclet模块,您还可以创建自己的XDoclet自定义配置。 集成自定义XDoclet模块的过程超出了本文档的范围。

使用MyEclipse开发Java EE应用
添加一个标准EJB配置

将标准EJB模块添加到列表后,选择它来显示其包含的doclet。注意ejbdoclet出现在左下角的列表中,jbdoclet下的subdoclets包含必需和可选的子任务。 许多子事件不适用于简单的无状态会话bean,如Trader EJB。

使用MyEclipse开发Java EE应用
Standard ejbdoclet的默认子任务

3. 删除不需要的子任务,保留只有下面图像中显示的列表。想要删除子任务,只需单击每个子任务,然后选择Remove。此配置中的每个项目都表示EJB XDoclet子任务。

使用MyEclipse开发Java EE应用
Trader EJB要求的XDoclet EJB子任务

4. (可选)如果在创建项目时指定了非默认源文件夹,则必须更新以下元素:ejbdoclet>destDir、deploymentdescriptor>destDir和fileset>src的项目相对路径属性。选择左下方面板中的每一个元素,然后在右下方的面板中查看和修改其各自的属性。

5. 单击Build标签来配置项目的XDoclet构建文件策略。

注意:如果这是一个新项目,则将Build策略设置为默认策略,因此您可以跳到步骤7。

6. 选择Use dynamic build specificationpolicy选项。

如果您正在使用已经包含XDoclet配置的现有项目,则可以选择删除不必要的xdoclet-build.xml文件。它不再需要有关这些政策的更详细说明,请参见下表。默认情况下,新项目设置为使用动态构建策略。 您可以在参数页上覆盖该项目的默认值。

使用MyEclipse开发Java EE应用
XDoclet构建文件策略配置

警告! 当项目的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的文件,并将该文件存储在项目的根文件夹中。

3.2 配置应用服务器XDoclet(可选)

XDoclet能够生成server-specific部署描述符。

注意:稍后您将看到firstejb部署到本地JBoss服务器的步骤,这些步骤使用JBoss子任务。

1. 右键单击firstejb,选择Properties,展开MyEclipse,然后选择XDoclet。

2. 选择Standard EJB来查看任务,右键单击ejbdoclet,然后选择Add。

3. 选择jboss,然后单击OK。

使用MyEclipse开发Java EE应用
 

4. 选择jboss subtask,双击destDir属性,在Value字段中输入src/META-INF,然后单击OK。

使用MyEclipse开发Java EE应用
设置jboss子任务属性

5. 在Properties窗口单击OK。

四、运行XDoclet代码生成

通常每次更改XDoclet EJB配置、应用程序服务器设置或修改任何EJB bean实现类的XDoclet注释后,都应执行XDoclet。

现在是在firstejb项目上执行XDoclet并测试新的XDoclet设置的好机会,因为Trader EJB尚未使用新的XDoclet注释业务方法进行扩展。

1. 右键单击firstejb,然后选择MyEclipse>Run XDoclet。

2. 监视来自xdoclet-build脚本的异常输出消息的控制台视图。

使用MyEclipse开发Java EE应用
运行XDoclet操作的控制台输出

在运行XDoclet之后,firstejb项目包括Trader和TraderHome接口的新版本以及ejb-jar.xml和jboss.xmldeployment描述符。

使用MyEclipse开发Java EE应用
XDoclet生成后EJB项目的内容

注意:当您在第2节中创建TraderBean.java类时,将Java包名称指定为com.genuitec.trader.ejb,并强调包名应以.ejb结尾。这是因为标准EJB XDoclet包替换子任务可以创建以.interfaces结尾的相应Java包名称,并将生成的EJB和Home接口添加到其中。在这个例子中,创建了com.genuitec.trader.interfaces包,它包含了Trader EJB和TraderHome接口。

五、创建Session EJB – Part 2

在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注释的方法。

TraderBean示例方法

/**
* 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; 

 }

六、部署到JBoss服务器

1. 右键单击Servers视图,然后选择New>Server,选择您安装的JBoss版本。

2. 继续通过向导配置服务器连接器。

注意:确保选择一个完整的JDK,而不仅仅是一个JRE。 如果只列出一个JRE,您将需要添加一个新的JDK。

3. 在New Server向导的Add and Remove页面上,在Available列中选择firstejb项目。

4. 单击Add。您可以使用Configured列中模块旁边的下拉菜单来选择打包或展开部署,单击Finish。

使用MyEclipse开发Java EE应用
运行XDoclet操作的控制台输出

5. 在Servers视图中右键单击服务器,然后选择Start。

6. 检查消息日志来指示EJB已成功部署。

使用MyEclipse开发Java EE应用
运行XDoclet操作的控制台输出

注意:独立EJB测试需要一个分布式测试客户端,为Trader EJB创建测试客户端是一项非常简单的工作。

七、资源

更多资讯敬请访问MyEclipse中文网>>