MyEclipse 下创建并部署一个 EJB 项目,说到底就是三步走:先建一个符合 Java EE 6.0 / EJB 3.1 规范的工程;然后配置好容器级的 JNDI 数据源(比如 JBoss 下的 mysql-ds.xml),并在 persistence.xml 里引用它;最后把 EJB 模块打
MyEclipse企业级EJB项目创建与部署到容器
作者:技术拾光
时间:2026-06-30
浏览:456
文章目录
MyEclipse 下创建并部署一个 EJB 项目,说到底就是三步走:先建一个符合 Java EE 6.0 / EJB 3.1 规范的工程;然后配置好容器级的 JNDI 数据源(比如 JBoss 下的 mysql-ds.xml),并在 persistence.xml 里引用它;最后把 EJB 模块打成 jar 包,部署到目标服务器(JBoss 或 GlassFish),通过控制台日志和 JNDI 客户端验证一下是否真的跑起来了。整个过程不需要额外装什么插件,但版本匹配和配置文件的一致性绝对不能马虎——细节决定成败。

下面将详细介绍各个环节,逐步说明。
创建标准 EJB 项目
第一步,需要确认 MyEclipse 中已经把目标运行时配置好——比如 JBoss 4.2 / 7.1,或者 GlassFish 3.1。操作路径不复杂:File > New > Project > EJB Project。几个关键点要注意:
- Project name 使用合法标识符,例如
StudentEJB,不要带空格或特殊字符,否则后续可能出现各种异常报错。 - Specification Level 选择 Java EE 6.0(对应 EJB 3.1),如果容器支持更高版本,Java EE 7 也可以。J2EE 1.3 那套留给遗留系统中的 EJB 2.x,现在基本用不上。
- Target Runtime 必须指向已经注册好的服务器运行时,否则后续部署会失败。
- 勾选 Generate ejb-jar.xml deployment descriptor,这样后续需要手动调整部署描述符时有一个基础文件,省去从头编写的麻烦。
- 如果计划使用 JPA,请给一个 Persistence Unit 名称,例如
studentPU,同时选好 JPA 版本(2.0 或 2.1)。
配置数据源与 persistence.xml
数据库连接不能硬编码在项目里——那样不够灵活,更换环境就需要修改代码。正确的做法是通过容器级数据源解耦。以 JBoss 为例:
- 在
JBOSS_HOME/server/default/deploy/下新建一个mysql-ds.xml,其中就是需要暴露的 JNDI 名称。stuMySqlDS - 然后在项目的
META-INF/persistence.xml中,内部写入:。这样持久化单元就与数据源绑定。java:/stuMySqlDS - 实体类使用
@Entity+@Table(name="student")映射表;主键字段标上@Id @GeneratedValue(strategy = GenerationType.IDENTITY)——如果数据库采用自增主键,这个策略最为简便。
生成并部署 EJB 模块
EJB 项目本身就是一个模块,可以打包进 EAR,也可以直接部署——具体取决于容器是否支持直接丢 jar。操作比较直观:
- 右键项目 → Export > JAR file,导出为
StudentEJB.jar,打包时确认包含了META-INF/ejb-jar.xml和所有编译后的 class 文件。 - 在 MyEclipse 的 Servers 视图中右键目标服务器(比如 JBoss),点击 Add and Remove,将 EJB 项目添加进去。这样可以通过 IDE 一键部署。
- 启动服务器,控制台出现类似
Deployed "StudentEJB.jar"的日志,基本就成功了。 - 如果使用 GlassFish,还需要额外将
gf-client.jar添加到测试客户端的构建路径中,否则通过 JNDI 查询远程接口时会抛出 ClassNotFoundException。
验证部署是否生效
部署完成后不能只看控制台没有报错就结束——需要主动验证才能放心。
- 先检查服务器
deploy目录下是否存在对应的 jar 文件(JBoss),或者autodeploy目录是否已完成解压(GlassFish)。文件存在,才算第一步到位。 - 登录管理控制台,例如 JBoss AS 7 的管理地址为
http://localhost:9990,查看已部署的应用列表中是否有你的 EJB jar。 - 最可靠的方法是编写一个简单的 Java 客户端,使用
InitialContext.lookup("java:global/StudentEJB/StudentDaoBean!com.example.BaseOperation")测试远程调用。能够调通,才算真正部署成功。 - 注意:JNDI 名称的格式因容器而异。JBoss 7+ 通常使用
java:jboss/exported/...,GlassFish 默认使用java:global/...。不要混淆,否则客户端会提示“找不到对象”。
实用工具推荐
电子包浆
使用 ›绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
图片压缩
使用 ›选择画质和输出格式,预览压缩前后的大小。