MyEclipse限时秒杀!活动火热开启中>>
四、运行XDoclet代码生成
通常每次更改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接口。
五、创建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;
}
|