2011-12-08 40 views
21

tôi nhận được sau ngoại lệ sau khi chuyển sang Spring Framework 3.1.0 RC1 với Hibernate 4.0.0 CR7Không tìm thấy dịch giả ngoại lệ tồn tại trong nhà máy đậu. Không thể thực hiện ngoại lệ dịch

2011-12-08/11: 48: 38,425/EST [Chủ đề-17 ] ERROR Khởi tạo ngữ cảnh không thành công org.springframework.beans.factory.BeanCreationException: Lỗi khi tạo bean có tên 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor # 0' được định nghĩa trong tài nguyên ServletContext [/WEB-INF/applicationContext-hibernate.xml] : Khởi tạo đậu không thành công; ngoại lệ lồng nhau là java.lang.IllegalStateException: Không có trình dịch ngoại lệ tồn tại trong nhà máy đậu. Không thể thực hiện dịch ngoại lệ. tại org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:530) tại org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:459) tại org.springframework. beans.factory.support.AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:294) tại org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:225) tại org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:291) tại org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:197) tại org.springframework.context.support.AbstractApplica tionContext.registerBeanPostProcessors (AbstractApplicationContext.java:728) tại org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:449) tại org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext (ContextLoader.java:381) tại org.springframework.web.context.ContextLoader.initWebApplicationContext (ContextLoader.java:283) tại org.springframework.web.context.ContextLoaderListener.contextInitialized (ContextLoaderListener.java:111) tại org.apache.catalina.core. StandardContext.listenerStart (StandardContext.java:4723) tại org.apache.catalina.core.StandardContext $ 1.call (StandardContext.javaattraction226) tại org.apache.catalina.core.StandardContext $ 1.call (StandardContext.java: 5221) tại java.util.concurrent.FutureTask $ Sync.innerRun (Nguồn không xác định) tại java.util.concurrent.FutureTask.run (Nguồn không xác định) tại java.util.concurrent.ThreadPoolExecutor.runWorker (Unknown Source) at java .util.concurrent.ThreadPoolExecutor $ Worker.run (Unknown Source) tại java.lang.Thread.run (Unknown Source) Gây ra bởi: java.lang.IllegalStateException: Không có trình dịch ngoại lệ dai dẳng được tìm thấy trong nhà máy đậu. Không thể thực hiện dịch ngoại lệ. tại org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.detectPersistenceExceptionTranslators (PersistenceExceptionTranslationInterceptor.java:142) tại org.springframework.dao.support.PersistenceExceptionTranslationInterceptor. (PersistenceExceptionTranslationInterceptor.java:79) tại org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor . (PersistenceExceptionTranslationAdvisor.java:70) tại org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor.setBeanFactory (PersistenceExceptionTranslationPostProcessor.java:103) tại org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods (AbstractAutowireCapableBeanFactory.java:1465) tại org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactor y.initializeBean (AbstractAutowireCapableBeanFactory.java:1433) tại org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java WEBC22) ...18 thêm

+0

Liệu PersistenceExceptionTranslationPostProcessor yêu cầu bất kỳ loại đậu khác được xác định. Tôi chưa bao giờ sử dụng nó trước đây, nhưng tôi đoán đó là những gì gây ra lỗi của bạn. – JustinKSU

+1

Có vẻ như, bạn cần xác định một trong các dẫn xuất của [PersistenceExceptionTranslator] (http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/dao/support/PersistenceExceptionTranslator.html) trong cấu hình đậu. – srkavin

Trả lời

25

Và với sự mới cấu hình mùa xuân java:

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

Như đã đề cập bởi skravin, bạn phải định cấu hình HibernateExceptionTranslator. Các LocalSessionFactoryBean cho Hibernate 3 thực hiện PersistenceExceptionTranslator, nhưng một cho Hibernate 4 thì không.

+2

Điều đó có nghĩa là "định cấu hình HibernateExceptionTranslator"? Tôi theo tài liệu này http://static.springsource.org/spring-data/data-jpa/docs/current/reference/html/ và nó không đề cập đến nó? Cảm ơn. –

+1

Chỉ cần khai báo một bean loại này trong tệp XML ngữ cảnh mùa xuân của bạn. –

+1

Nhưng chính xác thì sao? Không hoạt động rõ ràng. Tôi tự hỏi tại sao nó không được ghi lại trong hướng dẫn chính thức. Cảm ơn –

Các vấn đề liên quan