「Java EE开发指南」如何在MyEclipse中开发EJB 2 Session Bean?(三)

本文介绍了开发符合EJB 2.0的Java EE Enterprise Java Beans所需的基本特性、概念和技术。在本教程中,您将学习如何:

  • 创建EJB项目
  • 创建会话EJB
  • 将项目配置为使用XDoclet代码生成
  • 打包并部署会话EJB

该特性在MyEclipse中可用。在上文中我们为大家介绍了如何为XDoclet支持配置项目(点击这里回顾>>),本文将继续介绍如何运行XDoclet代码生成、创建Session EJB的第二部分、部署到JBoss服务器等,欢迎持续关注我们获取更多中文教程!

MyEclipse v2025.2离线版下载

四、运行XDoclet代码生成

通常应该在每次更改XDoclet EJB配置或应用服务器设置之后,或者在修改任何EJB bean实现类的XDoclet注释时执行XDoclet。

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

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

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

运行XDoclet操作的控制台输出

在运行XDoclet之后,firstejb项目包含了新版本的Trader和TraderHome接口以及ejb-jar.xmlljboss.xml部署描述符。

生成XDoclet后EJB项目的内容

注意:当您在第2节中创建TraderBean.java类时,将其Java包名称指定为com.genuitec.trader.ejb,并强调包名称应该以.ejb结尾。这是因为Standard EJB XDoclet packagessubstitution子任务创建了一个以.interfaces结尾的对应Java包名,并将生成的EJB和Home接口添加到其中。在这个例子中,创建了接口包,它包含了用于Trader EJB和TraderHome接口的组件。如果您没有遵循此包命名约定并使用默认的XDoclet设置,则可能无法生成某些文件。

五、创建Session EJB -- Part 2

在Part 1中,您看到了创建TraderBean类的过程。在本节中,您将向TraderBean类添加业务方法和XDoclet注释,然后使用XDoclet更新前面创建的Trader和TraderHome接口。

当您创建初始的TraderBean.java类时,EJB创建向导添加了一个示例业务方法,可以将其用作添加自己业务方法的模式。注意,该方法包含javadoc标记"@ejb.interface-method"。这个自定义ejbdoclet标记将该方法标识为EJB接口方法的实现,当XDoclet在该类上运行时,Trader.java EJB接口类被修改为包含带有"@ejb.interface-method"注释的所有方法。

TraderBean示例方法

java 复制代码
/**
* 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保存。

java 复制代码
/**
* 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;
}
  1. 在firstejb项目上运行XDoclet,来同步Trader和TraderHome类以及部署描述符(详细信息请参见第4节)。

  2. 双击com.genuitec.trader.interfaces 包中的Trader.java,注意添加了`buy()` 和 `sell()`业务方法。

java 复制代码
/*
* 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. 继续通过向导配置服务器连接器。有关详细信息,请参见使用MyEclipse应用服务器

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

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

  2. 单击Add。您可以通过使用Configured列中模块旁边的下拉菜单选择打包部署或分解部署,然后单击Finish。

向服务器添加项目

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

  2. 检查消息日志,以确定是否成功部署了EJB。

JBoss的控制台输出显示EJB已成功部署

注意:独立EJB测试需要一个分布式测试客户端。

七、资源
相关推荐
希望永不加班6 分钟前
SpringBoot 集成测试:@SpringBootTest 与 MockMvc
java·spring boot·后端·log4j·集成测试
enAn_10 分钟前
对照片和视频文件名,程序追加日期,直观看
java·maven
克里斯蒂亚诺更新14 分钟前
myeclipse和tomcat的使用
ide·tomcat·myeclipse
yaaakaaang17 分钟前
六、适配器模式
java·适配器模式
bobasyu24 分钟前
Claude Code 源码笔记 -- queryLoop
java·笔记·spring
计算机学姐35 分钟前
基于SpringBoot的高校竞赛管理系统
java·spring boot·后端·spring·信息可视化·tomcat·mybatis
AnalogElectronic37 分钟前
普通数据源和druid数据源区别以及druid参数详解
java
東雪木40 分钟前
Java学习——泛型基础:泛型的核心作用、泛型类 / 方法 / 接口的定义
java·学习·java面试
一叶飘零_sweeeet1 小时前
ConcurrentHashMap 深度解析:从 JDK7 到 JDK8 的演进与并发安全保障
java·并发编程
三原1 小时前
超级好用的三原后台管理v1.0.0发布🎉(Vue3 + Ant Design Vue + Java Spring Boot )附源码
java·vue.js·开源