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; } |