我有java项目(第8版)
我将hibernate版本从5.0.3升级到5.6.9
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.6.9.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.6.9.Final</version>
</dependency>升级hibernate版本后,我尝试运行我的tomcat (10.0.20版本),并收到了下一个错误:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [spring/db-config.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/persistence/Entity (wrong name: jakarta/persistence/Entity)sessionFactory bean看起来是这样的:
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"
depends-on="flyway">
<property name="dataSource" ref="itpDataSource"/>
<property name="packagesToScan" value="com.imperva.itp.domain,com.imperva.itp.commons.domain"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.PostgresPlusDialect</prop>
<prop key="configurationClass">org.hibernate.cfg.Configuration</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.id.new_generator_mappings">true</prop>
<prop key="hibernate.default_schema">${itp.db.username}</prop>
</props>
</property>
</bean>我不知道它是否相关,但我的Spring版本是4.3.30。
在运行不同的组合之后:
hibernate 5.0.3.Final with tomcat 8: works properly
hibernate 5.0.3.Final with tomcat 10: works properly
hibernate 5.6.9.Final with tomcat 8: works properly
hibernate 5.6.9.Final with tomcat 10: doesn't work and the exception is thrown 有什么想法吗?
发布于 2022-06-12 19:57:35
最后,我将spring升级到5.3.20,spring升级到5.7.1,并将javax.persistence的所有引用都更改为jakarta.persistence,并且它起了作用。我保留了hibernate版本5.6.9,tomcat和tomcat 10
发布于 2022-06-09 12:09:14
Tomcat 10将包名从javax更改为雅加达,第一个支持雅加达包的Spring将是未来的Spring 6。
目前,直到进一步通知,Spring 5或之前的任何版本都不会使用Tomcat 10。因此,在Spring 6发布之前,您应该等待Tomcat 10的使用。
Tomcat 9会很好地满足你的需要。
https://stackoverflow.com/questions/72559435
复制相似问题