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

无法在GlassFish上运行/部署项目,SessionFactory创建失败

解决GlassFish上Hibernate项目部署的NoSuchMethodError问题

从你提供的日志来看,核心错误是:

Severe: Initial SessionFactory creation failed.java.lang.NoSuchMethodError: org.hibernate.cfg.AnnotationConfiguration.getEventListeners()Lorg/hibernate/event/EventListeners;

这个错误几乎都是Hibernate版本冲突或者API使用过时导致的,结合你用的Hibernate Core 4.3.1.Final,给你几个针对性的解决步骤:

  • 统一Hibernate依赖版本
    你的项目里可能混合了不同版本的Hibernate相关jar包(比如同时存在3.x和4.x的依赖)。Hibernate 4.x已经对AnnotationConfiguration做了整合,旧版本的jar会和新版本的API产生冲突。请确保所有Hibernate依赖(core、commons annotations、entitymanager等)都使用同一大版本(比如全部用4.3.1.Final),清理掉项目中所有不属于这个版本的Hibernate相关jar。

  • 替换过时的AnnotationConfiguration
    在你的SessionFactory创建代码里,如果你还在使用new AnnotationConfiguration()来加载配置,赶紧换成new Configuration()。Hibernate 4.x之后,注解配置的功能已经合并到Configuration类中,AnnotationConfiguration被废弃,继续使用它会导致找不到对应方法的错误。

  • 处理GlassFish自带的Hibernate冲突
    GlassFish服务器本身可能内置了旧版本的Hibernate库,和你项目打包的新版本冲突。你可以:

    1. 确认项目的WEB-INF/lib下包含了完整的、兼容的Hibernate依赖包,确保项目优先加载自身的库;
    2. 或者修改GlassFish的域配置文件(domain.xml),找到自带的Hibernate相关模块并注释掉,强制使用项目内的依赖。
  • 清理并重新构建项目
    清理项目的构建目录(比如Maven的target、Gradle的build),重新执行构建命令,确保没有残留的旧版本jar包。部署前检查WEB-INF/lib目录,确认所有依赖都是你需要的版本,没有多余的冲突文件。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:44:27