【问题标题】:Hibernate 5 + Glassfish 4.1.1: java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf(Ljava/lang/String;I)VHibernate 5 + Glassfish 4.1.1: java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V
【发布时间】:2016-01-15 14:53:34
【问题描述】:

当我将 Hibernate 5 添加到我的网站时,我无法让它在 Glassfish 4.1.1 中运行。我总是收到错误

java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V

我尝试替换 Glassfish 模块文件夹中的 jboss-logging 库,就像我在类似问题的答案中读到的一样,但它没有改变任何东西。我也尝试过使用 Hibernate 4,但出现了另一个错误。

【问题讨论】:

标签: java hibernate glassfish hibernate-5.x


【解决方案1】:

就我而言,我在 tomcat 上运行带有 JPA 注释的 Hibernate 5,当我更改为 glassfish 4.1 时停止工作

错误:

找不到hibernate.properties

确保:src/main/resources/hibernate.cfg.xml 存在

如果你只有 hibernate-core 的依赖,我使用的是 hibernate-annotations 和 hibernate-common-annotations 并且它会产生冲突。 hibernate 5不需要这两个,我在某处读过。尝试删除;)

之后出现新的错误:

java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V

原因是最古老的 jboss-logging.jar 位于: "YOUR_GLASSFISH_FOLDER/glassfish/modules"

为什么? hibernate 5 依赖于最新版本的 jboss-logging,glassfish 4 使用最旧的版本,即使你 在您的 POM 文件中声明最新版本。实际上我正在使用:

org.jboss.logging jboss-logging 3.3.0.Final

然后我下载它并替换模块路径中的旧 .jar 它重新开始工作,我花了 2 天时间试图解决这个问题,我希望它 帮助一些未来的问题=D

我使用此链接来帮助我:https://medium.com/@mertcal/using-hibernate-5-on-payara-cc242212a5d6#.npq2hdprz

就我而言,另一种解决方案可能会回到上一个 Hibernate 4 版本(4.3.11.Final),但在我看来它已经太旧了

【讨论】:

    【解决方案2】:

    我有一个类似的问题,我可以通过在WEB-INF 目录中创建一个glassfish-web.xml 文件来解决它。文件内容如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
    <glassfish-web-app>
         <class-loader delegate="false"/>
    </glassfish-web-app>
    

    这确保 glassfish 不会加载它的内部库,而是从您的项目中加载库..

    【讨论】:

      【解决方案3】:

      尝试清理您域中的 glassfish osgi-cache 文件夹。您可以在 Payara github 问题中找到详细信息:https://github.com/payara/Payara/issues/554(Payara 是 Glassfish 的一个分支,具有附加功能,因此基本机制与 Glassfish 中的相同)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-09
        • 1970-01-01
        • 2013-09-07
        • 1970-01-01
        • 1970-01-01
        • 2018-11-26
        • 2016-02-07
        • 1970-01-01
        相关资源
        最近更新 更多