You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法将Dynamic Web Module部署至Glassfish 4服务器的求助

解决Glassfish部署EJB模块时"DeploymentContext does not contain any EJB"的问题

根据你描述的情况,核心问题确实是Eclipse与Maven的项目同步异常,导致Eclipse部署时没有正确识别并包含带注解的EJB类。下面是针对性的解决步骤:

1. 强制Eclipse与Maven同步

  • 右键项目 → Maven → Update Project...
  • 勾选Force Update of Snapshots/Releases,点击确定,等待同步完成
  • 同步后重新尝试部署到本地Glassfish

2. 检查Eclipse的Deployment Assembly配置

Eclipse可能没把编译后的EJB类加入部署包:

  • 右键项目 → Properties → Deployment Assembly
  • 确认是否有src/main/java对应的条目,且输出路径是WEB-INF/classes
  • 如果没有,点击Add → Java Build Path Entries → 选择src/main/java,添加后保存

3. 验证项目的Java EE版本设置

确保项目的Java EE版本与web.xml、EJB注解兼容:

  • 右键项目 → Properties → Project Facets
  • 确认:
    • Dynamic Web Module是3.1(和web.xml版本一致)
    • Java版本为1.8(Glassfish 4推荐适配版本)
    • EJB模块已勾选(版本选择3.2,对应Java EE 7规范)

4. 清理Eclipse本地编译缓存

有时候编译缓存会导致类文件未更新:

  • 右键项目 → Clean... → 选择当前项目,点击确定
  • 然后执行Project → Build Project,重新编译后再部署

5. 检查Eclipse的Glassfish部署配置

确保部署时使用的是Maven打包的产物,而非Eclipse自行编译的文件:

  • 打开Servers视图,右键本地Glassfish服务器 → Add and Remove...
  • 移除当前项目,点击Finish
  • 重新添加项目时,选择target目录下Maven打包好的war文件,而非项目本身

另外补充一点:你的DAONouvelle类注解配置本身没有问题,但要确认persistence.xml放在src/main/resources/META-INF目录下,确保Eclipse能正确将其复制到部署包中。

按照这些步骤操作后,应该能解决Eclipse部署时找不到EJB的问题。

内容的提问来源于stack exchange,提问作者FlawTECH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:40:42