Hibernate 5 + Glassfish 4.1.1: java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V
Hibernate 5 + Glassfish 4.1.1: java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V
当我将 Hibernate 5 添加到我的网站时,我无法让它在 Glassfish 4.1.1 中运行。我总是收到错误
java.lang.NoSuchMethodError:
org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V
我尝试替换 Glassfish 模块文件夹中的 jboss-logging 库,就像我在对类似问题的回答中读到的那样,但它没有改变任何东西。我也尝试过使用 Hibernate 4,但出现了另一个错误。
尝试清理您域中的 glassfish osgi-cache
文件夹。您可以在这个 Payara github 问题中找到详细信息:https://github.com/payara/Payara/issues/554(Payara 是 Glassfish 的一个分支,具有附加功能,因此基本机制与 Glassfish 中的相同)
就我而言,我是 运行 在 tomcat 上带有 JPA 注释的 Hibernate 5,当我更改为 glassfish 4.1
时停止工作
错误:
hibernate.properties 未找到
确保:src/main/resources/hibernate.cfg.xml 存在
如果您只有 hibernate-core 的依赖项,我使用的是 hibernate-annotations 和 hibernate-common-annotations,这会造成冲突。 hibernate 5 不需要这两个,我读过 somewhere.Try 来删除 ;)
之后出现新的错误:
java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V
The reason was the oldest jboss-logging.jar at:
"YOUR_GLASSFISH_FOLDER/glassfish/modules"
Why? The hibernate 5 has dependency with the newest version of
jboss-logging, and the glassfish 4 uses the oldest version even if you
declare inside your POM file the newest version. Actually I'm using:
org.jboss.logging jboss-logging 3.3.0.Final
Then I downloaded it and replace the old .jar inside the modules path
and it back to work, I spent 2 days trying to solve that and I hope it
helps some future issues =D
我用这个 link 来帮助我:https://medium.com/@mertcal/using-hibernate-5-on-payara-cc242212a5d6#.npq2hdprz
另一个解决方案,就我而言,可以回到上一个 Hibernate 4 版本 (4.3.11.Final),但在我看来它已经太旧了
我有一个类似的问题,我可以通过在 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 不会加载它的内部库,而是加载您项目中的库..
当我将 Hibernate 5 添加到我的网站时,我无法让它在 Glassfish 4.1.1 中运行。我总是收到错误
java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V
我尝试替换 Glassfish 模块文件夹中的 jboss-logging 库,就像我在对类似问题的回答中读到的那样,但它没有改变任何东西。我也尝试过使用 Hibernate 4,但出现了另一个错误。
尝试清理您域中的 glassfish osgi-cache
文件夹。您可以在这个 Payara github 问题中找到详细信息:https://github.com/payara/Payara/issues/554(Payara 是 Glassfish 的一个分支,具有附加功能,因此基本机制与 Glassfish 中的相同)
就我而言,我是 运行 在 tomcat 上带有 JPA 注释的 Hibernate 5,当我更改为 glassfish 4.1
时停止工作错误:
hibernate.properties 未找到
确保:src/main/resources/hibernate.cfg.xml 存在
如果您只有 hibernate-core 的依赖项,我使用的是 hibernate-annotations 和 hibernate-common-annotations,这会造成冲突。 hibernate 5 不需要这两个,我读过 somewhere.Try 来删除 ;)
之后出现新的错误:
java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V
The reason was the oldest jboss-logging.jar at: "YOUR_GLASSFISH_FOLDER/glassfish/modules"
Why? The hibernate 5 has dependency with the newest version of jboss-logging, and the glassfish 4 uses the oldest version even if you declare inside your POM file the newest version. Actually I'm using:
org.jboss.logging jboss-logging 3.3.0.Final
Then I downloaded it and replace the old .jar inside the modules path and it back to work, I spent 2 days trying to solve that and I hope it helps some future issues =D
我用这个 link 来帮助我:https://medium.com/@mertcal/using-hibernate-5-on-payara-cc242212a5d6#.npq2hdprz
另一个解决方案,就我而言,可以回到上一个 Hibernate 4 版本 (4.3.11.Final),但在我看来它已经太旧了
我有一个类似的问题,我可以通过在 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 不会加载它的内部库,而是加载您项目中的库..