2011-12-08 7 views
21

Dostaję następujący wyjątek po migracji do Spring Framework 3.1.0 RC1 z Hibernate 4.0.0 CR7Nie znaleziono tłumaczy wyjątków trwałości w fabryce fasoli. Nie można wykonać tłumaczenie wyjątkiem

2011-12-08/11: 48: 38,425/EST [wątku-17 ] ERROR Inicjalizacja kontekstu nie powiodła się org.springframework.beans.factory.BeanCreationException: Błąd tworzenia komponentu bean o nazwie 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor # 0' zdefiniowany w zasobu ServletContext [/WEB-INF/applicationContext-hibernate.xml] : Inicjalizacja komponentu bean nie powiodła się; Zagnieżdżony wyjątek to java.lang.IllegalStateException: Nie znaleziono tłumaczy wyjątków trwałości w fabrykach fasoli. Nie można wykonać tłumaczenia wyjątku. w org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:530) w org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:459) w 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:197) at org.springframework.context.support.AbstractApplica tionContext.registerBeanPostProcessors (AbstractApplicationContext.java:728) w org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:449) w org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext (ContextLoader.java:381) w org.springframework.web.context.ContextLoader.initWebApplicationContext (ContextLoader.java:283) w org.springframework.web.context.ContextLoaderListener.contextInitialized (ContextLoaderListener.java:111) w org.apache.catalina.core. StandardContext.listenerStart (StandardContext.java:4723) at org.apache.catalina.core.StandardContext $ 1.call (StandardContext.java:5226) at org.apache.catalina.core.StandardContext $ 1.call (StandardContext.java: 5221) w java.util.concurrent.FutureTask $ Sync.innerRun (Unknown Source) w java.util.concurrent.FutureTask.run (Unknown Source) w java.util.concurrent.ThreadPoolExecutor.runWorker (Unknown Source) w java .util.concurrent.ThreadPoolExecutor $ Worker.run (Nieznane źródło) w java.lang.Thread.run (Nieznane źródło) Wywołane przez: java.lang.IllegalStateException: Nie znaleziono tłumaczy wyjątków trwałych w fabryce fasoli. Nie można wykonać tłumaczenia wyjątku. w org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.detectPersistenceExceptionTranslators (PersistenceExceptionTranslationInterceptor.java:142) w org.springframework.dao.support.PersistenceExceptionTranslationInterceptor. (PersistenceExceptionTranslationInterceptor.java:79) w org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor . (PersistenceExceptionTranslationAdvisor.java:70) w org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor.setBeanFactory (PersistenceExceptionTranslationPostProcessor.java:103) w org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods (AbstractAutowireCapableBeanFactory.java:1465) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactor y.initializeBean (AbstractAutowireCapableBeanFactory.java:1433) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:522) ...18 więcej

+0

Does PersistenceExceptionTranslationPostProcessor wymagać żadnych innych ziaren, które zostaną określone. Nigdy wcześniej tego nie używałam, ale domyślam się, że właśnie to powoduje twój błąd. – JustinKSU

+1

Wygląda na to, że musisz zdefiniować jedną z pochodnych [PersistenceExceptionTranslator] (http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/dao/support/PersistenceExceptionTranslator.html) w konfiguracja fasoli. – srkavin

Odpowiedz

25

I z nową konfiguracją wiosna Java:

@Bean 
    public HibernateExceptionTranslator hibernateExceptionTranslator(){ 
     return new HibernateExceptionTranslator(); 
    } 
23

Jak wspomniano w skravin, należy skonfigurować HibernateExceptionTranslator. Model LocalSessionFactoryBean dla Hibernate 3 implementuje PersistenceExceptionTranslator, ale ten dla Hibernate 4 nie.

+2

Co to znaczy "skonfigurować HibernateExceptionTranslator"? Postępuję zgodnie z tym dokumentem http://static.springsource.org/spring-data/data-jpa/docs/current/reference/html/ i nie wspomina o tym? Dzięki. –

+1

Po prostu zadeklaruj fasolę tego typu w swoim źródłowym pliku XML kontekstu. –

+1

Ale jak dokładnie? Nie działa w sposób oczywisty. Zastanawiam się, dlaczego nie jest to udokumentowane w oficjalnym samouczku. Dzięki –

Powiązane problemy