四、运行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创建EJB 2 Session Bean项目(四)-LMLPHP
运行XDoclet操作的控制台输出

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

使用MyEclipse开发Java EE应用:用XDoclet创建EJB 2 Session Bean项目(四)-LMLPHP
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示例方法

1
2
3
4
5
6
7
8
9
10
/**
* 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进行保存。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
* 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()业务方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*
  * 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;
 
 }

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

05-11 21:55