【问题标题】:How to migrate Spring/Hibernate JPA application from Tomcat 7 to Tomee plus 1.7.2?如何将 Spring/Hibernate JPA 应用程序从 Tomcat 7 迁移到 Tomee plus 1.7.2?
【发布时间】:2016-02-14 17:51:45
【问题描述】:

如果我在 tomcat 7 中部署战争,我正在成功运行 Spring 3 + Hibernate 4 jpa 和 mysql,但如果我在 Tomee plus 1.7.2 中部署相同的战争,那么我会得到以下异常。

Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.QueryResultsRegion
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
    at org.apache.tomee.catalina.LazyStopWebappClassLoader.loadClass(LazyStopWebappClassLoader.java:171)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)

我发现这个类是hibernate 3.3 的一部分,但我使用的是hibernate 4.2

我复制了hibernate-core-4.2.0.Final.jar、hibernate-ehcache-4.2.0.Final.jar、cglib-2.2.2.jar、hibernate-jpa-2.0-api-1.0.1.Final .jar,hibernate-commons-annotations-4.0.1.Final.jar,hibernate-entitymanager-4.2.0.Final.jar,hibernate-validator-4.2.0.Final.jar,ehcache-core-2.4.3.jar ,spring-data-commons-core-1.3.0.RELEASE.jar,spring-data-jpa-1.1.0.RELEASE.jar,spring-jdbc-3.0.7.RELEASE.jar,spring-orm-3.1.2 .RELEASE.jar 也到 /lib 文件夹。这些罐子也是战争的一部分。

persistence.xml 是:

<persistence-unit name="default" transaction-type="RESOURCE_LOCAL">      <provider>org.hibernate.ejb.HibernatePersistence</provider>
</persistence-unit>

【问题讨论】:

  • 您在此期间是否尝试过我回答中的指南?

标签: hibernate jpa tomcat7 spring-data apache-tomee


【解决方案1】:

当 WebappClassLoader 实现尝试启动您的 Web 项目时,您的应用程序或引用的第三方库中的某些内容仍在引用 org.hibernate.cache.QueryResultsRegion 类。

这很可能是由于 spring-orm-3.1.2.RELEASE.jar 的 JAR 已过时。您应该能够通过将 Spring 版本升级到至少 4.0 来克服这个问题,但从长远来看,最好升级到 4.1/4.2。

在检查 spring-data-commons-core-1.3.0.jar 的依赖项时,我发现它应该与 Spring 4.0.x 兼容 - 不保证 4.1/4.2。

另一个棘手的 JAR 可能是 spring-data-jpa-1.1.0.RELEASE.jar,因为它已经过时(2012 年 5 月发布)并且已经在 1.9.x 版本中可用。尝试找出至少 2014 年或更早 2015 年的星座。

我的建议是:

  1. 至少将 Spring 升级到 4.0.x 版本。
  2. 检查您自己的类文件中是否有直接导入该冲突运行时类的引用。
  3. 检查项目中可能存在的其他配置文件,例如使用 ORM 类(如 ehcache)的 Spring 应用程序/模块上下文。
  4. (可选)如果类加载错误应该已经解决,请尝试逐步升级到 Spring 4.1/4.2。以实用的方式测试您的设置。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-01
    • 2019-01-22
    • 2012-04-08
    • 1970-01-01
    • 2023-03-17
    • 2021-04-23
    • 1970-01-01
    • 2012-05-31
    相关资源
    最近更新 更多