hibernate - 启动 Tomcat 9.0.13 时,cglib jar 总是会出现不同版本的错误

标签 hibernate tomcat cglib

我在Tomcat 9.0.13服务器上部署了一个web应用,在WEB-INF/lib下有Hibernate相关的jar文件。当我启动服务器时,它在许多 Hibernate 映射类中给我错误:

1991 [main] ERROR proxy.BasicLazyInitializer  - CGLIB Enhancement failed: com.usps.nom.tops.model.impl.ComputedHardCloseoutImpl
java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer
        at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:116)
        at org.hibernate.proxy.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:41)

原来的Cglib版本是cglib-2.1.jar,我试了最新的cglib-3.2.12.jar,原来的错误没有了,但又出现了新的错误:

1619 [main] ERROR proxy.BasicLazyInitializer  - CGLIB Enhancement failed: com.usps.nom.tops.model.transportation.AplDispatch
java.lang.NoClassDefFoundError: net.sf.cglib.core.AbstractClassGenerator
        at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:116)
        at org.hibernate.proxy.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:41)
        at org.hibernate.tuple.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:161)

我尝试了不同版本的 Cglib jar 文件:

cglib-2.1.jar, cglib-2.1_3.jar, cglib-3.2.1.jar, cglib-3.2.12.jar, cglib-nodep-2.1.jar, cglib-nodep-3.2.12.jar

但他们总是给我上述错误之一。

WEB-INF/lib下其他Hibernate相关的jar包有: ehcache-1.1.jar, ehcache-core-2.4.8.jar, hibernate3.jar(3.1.0)

如果我在我的 Eclipse 项目中本地启动 Tomcat 服务器,则不会出现此类错误。有人可以帮忙吗?谢谢

最佳答案

我们从以前的供应商 IBM 那里继承了这个网络应用程序。它不是用 Maven 构建的。 hibernate相关jar的版本为: cglib-2.1.jar, ehcache-1.1.jar, hibernate3.jar(3.1.0)

此 Web 应用程序已部署到 WebSphere 服务器,目前运行良好,但现在我们的客户端需要切换到 Tomcat 服务器。 Web 应用程序在我的本地 Tomcat 9.0.13 服务器中运行正常,但当我将它部署到我们的 Web 服务器时,这些错误会在我启动服务器时发生。谢谢。

关于hibernate - 启动 Tomcat 9.0.13 时,cglib jar 总是会出现不同版本的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57117096/

相关文章:

java - 未指定 @TableGenerator 时跳跃 GeneratedValue(strategy=GenerationType.TABLE) 背后的原因是什么?

spring - 在tomcat中将apache camel与CXf集成

java - 如果 Java 中的反射减慢了命令的执行速度,为什么还有那么多框架使用它?

java - 具有匿名类的 CGLib 增强器

java - Hibernate创建大量线程并卡住

java - Hibernate 在 session.update(parent) 之后删除子对象

java - 使用 Hibernate Criteria API 查询与投影的多对一关系

java - 在 tomcat 7.0 中运行 Spring MVC 应用程序给我 HTTP 状态 404 : requested resource is not available.

Tomcat - 将数据库连接移出 server.xml

java - 在 Java Android 中动态编辑/创建类