繁体   English   中英

spring 迁移 4 到 5; 是什么导致 java.lang.ClassNotFoundException:org.springframework.orm.hibernate4.LocalSessionFactoryBean

[英]spring migration 4 to 5; what is causing java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.LocalSessionFactoryBean

我正在将旧应用程序从 Spring 4 迁移到 5。它与 Maven 构建良好,但是当我在 jboss 中启动应用程序时,得到此错误:

java.lang.ClassNotFoundException:org.springframework.orm.hibernate4.LocalSessionFactoryBean

Spring 5.3.20
Hibernate 5.3.28.Final

我一直在关注本指南, https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-5.x

这说 Hibernate 5 是必需的,所以我在 pom 中将其更新为 5.3.28.Final

这是 spring-context.xml 的相关片段:

<bean id="hibernateSessionFactory"
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="annotatedClasses">
        <list>
            <value>com.mycompany.bean.FooService</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
            <prop key="show_sql">true</prop>
        </props>
    </property>
</bean>

运行 Java 8。

您需要将org.springframework.orm.hibernate4.LocalSessionFactoryBean替换为org.springframework.orm.hibernate5.LocalSessionFactoryBean

迁移指南的相关部分是:

Hibernate 支持已升级到 Hibernate ORM 5.2+ 基准,重点是 Z8B8A9A92C27C179FDD101。

这表明 Hibernate 现在的最低版本是 Hibernate 5.2。

web.view.tiles2orm.hibernate3/hibernate4删除。

这表明 package 您的 XML 配置正在使用( org.springframework.orm.hibernate4 )不再存在。 Spring Framework 5.3.22 apidoc 中搜索 LocalSessionFactoryBean LocalSessionFactoryBean org.springframework.orm.hibernate5.LocalSessionFactoryBean 它的 API 似乎与您的 XML 定义兼容,因此您只需更改class属性即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM