hibernate - 我的 SpringEclipselink 项目运行良好。我想将 ORM 框架更改为 Hibernate。但它产生了上述问题
问题描述
我的基于 SPRING +EXLIPSE 的 MVC 应用程序在将 ECLIPSELINK 替换为 HIBERNATE 后出现以下错误
WARN [localhost-startStop-1] (com.orsbv.hcs.config.ApplicationPropertyResource) - properties loaded :(resource='application.properties')
WARN [localhost-startStop-1] (com.orsbv.hcs.config.ApplicationPropertyResource) - Could not find properties (file='/Users/tanvir/.hcs/application.properties'), ignoring this set of properties.
WARN [localhost-startStop-1] (org.springframework.web.context.support.AnnotationConfigWebApplicationContext) - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in com.orsbv.hcs.config.HCSRepositoryContext: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/context/index/CandidateComponentsIndexLoader
ERROR [localhost-startStop-1] (org.springframework.web.context.ContextLoader) - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in com.orsbv.hcs.config.HCSRepositoryContext: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/context/index/CandidateComponentsIndexLoader
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1076)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:851)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: org/springframework/context/index/CandidateComponentsIndexLoader
at org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager.setResourceLoader(DefaultPersistenceUnitManager.java:431)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.setResourceLoader(LocalContainerEntityManagerFactoryBean.java:320)
at org.springframework.context.support.ApplicationContextAwareProcessor.invokeAwareInterfaces(ApplicationContextAwareProcessor.java:112)
at org.springframework.context.support.ApplicationContextAwareProcessor.postProcessBeforeInitialization(ApplicationContextAwareProcessor.java:97)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:408)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
... 20 more
Caused by: java.lang.ClassNotFoundException: org.springframework.context.index.CandidateComponentsIndexLoader
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
... 27 more
这是我的休眠配置
private Properties hibernateProperties(DataSourceConfiguration dataSourceConfiguration) {
Properties properties = new Properties();
// properties.setProperty("hibernate.hbm2ddl.auto", dataSourceConfiguration.getDdlGeneration());
properties.put("hibernate.dialect", dataSourceConfiguration.getDialect());
properties.put("hibernate.enable_lazy_load_no_trans", true);
properties.put("hibernate.jpa.compliance.transaction", true);
properties.put("hibernate.jpa.compliance.query", true);
properties.put("hibernate.jdbc.batch_size", 30);
properties.put("hibernate.order_inserts", true);
properties.put("hibernate.jdbc.batch_versioned_data", true);
properties.put("hibernate.ejb.use_class_enhancer",true);
properties.put("hibernate.enhancer.enableLazyInitialization",true);
// properties.setProperty("hibernate.enhancer.enableAssociationManagement","true");
properties.put("hibernate.current_session_context_class", dataSourceConfiguration.getCurrentSession());
properties.put("hibernate.show_sql", dataSourceConfiguration.getShowsql());
properties.put("hibernate.format_sql", dataSourceConfiguration.getFormatsql());
properties.put("hibernate.discriminator.ignore_explicit_for_joined", "true");
return properties;
}
该项目构建良好。但在运行时它会产生提到的错误。任何帮助将不胜感激。请注意,我已按照休眠文档的标准配置。
解决方案
推荐阅读
- c - 如何从另一个程序访问信号量数据
- javascript - 网络摄像头不转到页面
- video-streaming - 以 HTML5 播放存储在云平台上的视频
- python - 如何确定类不相等
- javascript - “gameActivity”键在开始时改变,但它应该停止
- node.js - “npm run”命令在 Windows 上失败
- c# - 如何在 EF6 和 asp.net core 3 之间建立连接
- java - 如何记录 doPost() 方法?
- javascript - Keycloak - 如何禁用两个(Angular)客户端应用程序之间的共享会话?
- ios - Swift 版本更新的正确语义版本控制更改