1. 程式人生 > >錯誤記錄(五)Error creating bean with name 'sessionFactory' defined in file

錯誤記錄(五)Error creating bean with name 'sessionFactory' defined in file

推薦一個專注於Java的小眾技術社群:Java之音

在hibernate和spring整合時,出現錯誤如下:

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [G:\workspace\s_hibernate\src\applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Error applying BeanValidation relational constraints
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:567)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:140)
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:84)
at org.test.Test.main(Test.java:16)
Caused by: org.hibernate.HibernateException: Error applying BeanValidation relational constraints
at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.applyRelationalConstraints(BeanValidationIntegrator.java:219)
at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:126)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:306)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1744)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1782)
at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:189)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:350)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:335)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
... 12 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.applyRelationalConstraints(BeanValidationIntegrator.java:208)
... 21 more
Caused by: org.hibernate.HibernateException: Unable to build the default ValidatorFactory
at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:524)
at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyDDL(TypeSafeActivator.java:119)
... 26 more
Caused by: javax.validation.ValidationException: Unable to create a Configuration, because no Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath.
at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:271)
at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:110)
at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:521)
... 27 more

經過一番查詢,終於解決了這個錯誤,原因出現在applicationContext.xml配置中:

<beanid="sessionFactory"class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  <propertyname="dataSource"ref="dataSource" />
 <propertyname="hibernateProperties">
   <props>
        <prop key="hibernate.show_sql">true</prop>
       <prop key="hibernate.format_sql">true</prop>
       <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
       <prop key="javax.persistence.validation.mode">none</prop>   
</props> </property> <propertyname="packagesToScan"value="com.bolo.examples.entity.*"/> </bean>
<prop key="javax.persistence.validation.mode">none</prop> </props> </property> <propertyname="packagesToScan"value="com.bolo.examples.entity.*"/> </bean>

 <prop key="javax.persistence.validation.mode">none</prop>   

加入粗體加下劃線部分就沒有問題了

真是不同的版本差異比較大啊

其實這個問題是我們自己造成的!為什麼這麼說?因為我們在配置spring和Hibernate進行結合的時候版本出現了問題。

<persistence...> 
  <persistence-unit...>
   ...
   <properties>
    <property name="javax.persistence.validation.mode"
               value="callback,ddl"/>
   </properties>
 </persistence-unit>
</persistence>

這是hibernate官方文件的一段話!

意思就是在hibernate.cfg.xml或者是

persistence.xml檔案下面需要配置

javax.persistence.validation.mode屬性!

特別的!在Hibernate中預設的

<propkey="javax.persistence.validation.mode">none</prop>

是auto而不是none!

------------------------------------------------------------------------------------------------------------------------------------------

javax.persistence.validation.mode預設情況下是auto的,就是說如果不設定的話它是會自動去你的classpath下面找一個bean-validation**包,但是找不到,所以beanvalitionFactory錯誤。

由於javax.persistence.validation.mode的屬性值預設是auto,所以會出錯。

在hibernate.cfg.xml裡將javax.persistence.validation.mode設定為none,就可以避免出錯了。

  <!-- Disable the BeanValidation-->

 <propertyname="javax.persistence.validation.mode">none</property>

------------------------------------------------------------------------------------------------------------------------------------------

所以,Hibernate3.6以上版本在用junit測試時會提示錯誤:

Unable to get thedefault Bean Validationfactory

在hibernate.cfg.xml裡增加一屬性解決:   

<propertyname="javax.persistence.validation.mode">none</property>

相關推薦

錯誤記錄Error creating bean with name 'sessionFactory' defined in file

推薦一個專注於Java的小眾技術社群:Java之音 在hibernate和spring整合時,出現錯誤如下: Exception in thread "main" org.springframework.beans.factory.BeanCreationExcept

BeanCreationException:Error creating bean with name 'sessionFactory' defined in file ...

這是今天因為寫介面要自己搭ssh的框架遇到的錯誤,基本用了快一下午的時間 BeanCreationException:Error creating bean with name 'sessionFactory' defined in file [d:/work/testAp

Error creating bean with name 'sessionFactory' defined in file

問題: 嚴重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListeneror

Error creating bean with name 'sqlSessionFactory' defined in file解決

十月 28, 2018 10:24:16 上午 org.apache.catalina.core.StandardContext listenerStart 嚴重: Exception sending context initialized event to listener

Spring載入Hibernate失敗:Error creating bean with name 'sessionFactory' defined in ServletContext... Null

      昨天突然發現Spring載入Hibernate觸發NullPointerException 異常: org.springframework.beans.factory.BeanCreationException: Error creating bean wit

SSM整合報錯:Error creating bean with name 'sqlSessionFactory' defined in file...

搭建SSM,遇到錯誤如下: 警告: Exception encountered during context initialization - cancelling refresh attempt org.springframework.beans.factory.Bean

Spring異常:Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/classes/applicationContext.

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/classe

SSM使用高版本的spring我用的5.0.8,報錯Error creating bean with name 'requestMappingHandlerAdapter' defined in

Error creating bean with name 'requestMappingHandlerAdapter' defined in class path resource [org/springframework/web/servlet/config/annota

Error creating bean with name 'methodValidationPostProcessor' defined in class path resource

異常:Error creating bean with name ‘methodValidationPostProcessor’ defined in class path resource [org/springframework/boot/autoconfi

Spring Cloud Finchley.RELEASE 使用 gateway Error creating bean with name 'webHandler' defined in class

pom <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gatewa

Mybatis plus:Caused by: Error creating bean with name 'sqlSessionFactory' defined in class path reso

整合springboot+mybatisplus時報錯 java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context

PageHelper報錯Error creating bean with name sqlSessionFactory defined in class path resource

2017-08-17 21:20:16.618 [ContainerBackgroundProcessor[StandardEngine[Catalina]]] ERROR org.springframework.web.context.ContextLoa

Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource

出現問題=有很多,下面的是一種。有些人不小心造成的。 錯誤所在,上下的這兩個方法,有沒有發現請求路徑都是一樣的,雖然你跟的引數不一樣,但是還是會報錯,** 報出問題: 方法初始化失敗,也就是springboot找不到應該請求哪個路徑。

Spring boot 採用Cxf 整合WebService 執行報錯“Error creating bean with name 'endpoint' defined

Spring boot 採用Cxf 整合WebService 執行報錯“Error creating bean with name ‘endpoint’ defined ” 由於新專案的需要,專案框架採用Spring boot 1.5.13.RELEASE、j

SSM時遇到的異常1——BeanCreationException: Error creating bean with name 'sqlSessionFactory

十二月 27, 2018 8:13:33 上午 org.apache.catalina.core.ApplicationContext log 嚴重: StandardWrapper.Throwable org.springframework.beans.factory.BeanCreation

SSM時遇到的異常2——BeanCreationException: Error creating bean with name 'empController'

JDK1.7+Tomcat7.0  十二月 27, 2018 2:22:43 下午 org.apache.catalina.core.ApplicationContext log 嚴重: StandardWrapper.Throwable org.springframework.b

SpringBoot熱部署報錯BeanCreationException: Error creating bean with name 'classPathFileSystemWatcher' d

異常資訊如下 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'classPathFileSystemWatcher'

Error creating bean with name '***類名': Injection of autowired dependencies failed;

整springMVC時報錯如下圖: 參考了好多方法,可能是由於和別人jar包和別的環境差別的原因,總是500錯誤 資訊裡有句“Error creating bean with name ‘productController’: Injection of

M和S整合的時錯誤Property 'driverClassName' threw exception;和Error creating bean with name 'sqlSes。。。

Mybatis和Spring整合的時. applicationcontext.xml如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframew

Error creating bean with name 'XXX'的錯誤處理

引用https://blog.csdn.net/weixin_37968633/article/details/72803748中的幾種排除方法   關於這個錯誤:參考springmvc的掃描過程,找到controller層 1、@Autowried注入是否出現錯誤(沒有添加註解) 2,關於