冬眠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冬眠5+;Glassfish 4.1.1:java.lang.NoSuchMethodError:org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V,java,hibernate,glassfish,hibernate-5.x,Java,Hibernate,Glassfish,Hibernate 5.x,当我将Hibernate 5添加到我的网站时,我无法让它在Glassfish 4.1.1中工作。我总是出错 java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V 我试图替换Glassfish的modules文件夹中的jboss日志库,就像我在一个类似问题的答案中读到的一样,但它没有改变任何东西。我还尝试使用Hibernate 4,但这导致了另一个错误。尝试清理域中的glassfisho
我试图替换Glassfish的modules文件夹中的jboss日志库,就像我在一个类似问题的答案中读到的一样,但它没有改变任何东西。我还尝试使用Hibernate 4,但这导致了另一个错误。尝试清理域中的glassfish
osgi缓存文件夹。您可以在这个Payara github版本中找到详细信息:(Payara是Glassfish的一个分支,具有附加功能,因此基本机制与Glassfish相同)在我的例子中,我在tomcat上运行带有JPA注释的Hibernate 5,当我更改为Glassfish 4.1时停止工作
错误:
找不到hibernate.properties
确保:src/main/resources/hibernate.cfg.xml存在
如果您只有hibernate核心的依赖项,那么我使用的是hibernate注释和hibernate公共注释,这会产生冲突。hibernate 5不需要这两个,我在某个地方读过。尝试删除;)
之后会出现一个新错误:
java.lang.NoSuchMethodError:org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V
原因是最早的jboss-logging.jar位于:
“您的\u GLASSFISH\u文件夹/GLASSFISH/modules”
为什么??hibernate 5与最新版本的
jboss日志,glassfish 4使用最旧的版本,即使您
在POM文件中声明最新版本。实际上,我正在使用:
org.jboss.logging jboss logging 3.3.0.Final
然后我下载了它,并在模块路径中替换了旧的.jar
我花了两天的时间试图解决这个问题,我希望能解决
帮助解决一些未来问题=D
我使用此链接来帮助我:
在我的例子中,另一个解决方案可能是回到上一个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不会加载它的内部库,但项目中的库似乎不可用。在您的classpath中检查它可能是的副本