2013-11-11 2 views
0

Прежде всего, мне очень жаль, что я задал этот вопрос, потому что я видел такую ​​же проблему со мной здесь (Spring + JPA + MVC - Error creating bean), но я до сих пор не знаю, как исправить ситуацию в моей ситуации. Потому что:Spring + JPA + MVC (No Maven) Ошибка создания bean

  • Я очень новичок в Spring, и я делаю проект за очень короткое время.

  • В импортированном проекте используется весна 2.5.6 (очень старая). Все файлы jars остаются в папке «lib», и он не использует Maven.

Когда я импортировал проект, он отобразил эти ошибки. То, что я узнал из «Spring + JPA + MVC - Error creating bean», заключается в том, что мне нужно разрешить конфликт между файлами jars. Но у меня все еще нет никаких подсказок, какой файл ящиков нужно изменить, даже если я потратил целый день на эту второстепенную задачу.

Это изображение элементов моих Lib ': http://i.imgur.com/5JPnyK4.png

Я действительно ценю любой помогает.

[email protected]:30:36 ERROR (ContextLoader.java:215)  - Context initialization failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name  'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0' defined in class path resource [ssel/banking/dao/jpa/banking.dao.xml]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [ssel/banking/dao/jpa/banking.dao.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: BankingWeb] Unable to build EntityManagerFactory 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) 
at java.security.AccessController.doPrivileged(Native Method) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) 
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:880) 
at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:596) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:365) 
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) 
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) 
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206) 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705) 
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799) 
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779) 
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601) 
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675) 
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601) 
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502) 
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317) 
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324) 
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065) 
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
at org.apache.catalina.core.StandardService.start(StandardService.java:525) 
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [ssel/banking/dao/jpa/banking.dao.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: BankingWeb] Unable to build EntityManagerFactory 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) 
at java.security.AccessController.doPrivileged(Native Method) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:308) 
at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors(BeanFactoryUtils.java:270) 
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.detectPersistenceExceptionTranslators(PersistenceExceptionTranslationInterceptor.java:122) 
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.<init>(PersistenceExceptionTranslationInterceptor.java:78) 
at org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor.<init>(PersistenceExceptionTranslationAdvisor.java:70) 
at org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor.setBeanFactory(PersistenceExceptionTranslationPostProcessor.java:97) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1326) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) 
... 38 more 
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: BankingWeb] Unable to build EntityManagerFactory 
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:677) 
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:132) 
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:224) 
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:291) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335) 
... 55 more 
Caused by: org.hibernate.MappingException: Duplicate property mapping of name found in ssel.banking.domain.Account 
at org.hibernate.mapping.PersistentClass.checkPropertyDuplication(PersistentClass.java:477) 
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:467) 
at org.hibernate.mapping.RootClass.validate(RootClass.java:215) 
at org.hibernate.cfg.Configuration.validate(Configuration.java:1135) 
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1320) 
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867) 
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669) 
... 60 more 
+0

Что заставляет вас думать, у вас есть противоречивые версии librares? Ошибка вызвана «Сопоставление дубликатов свойств имени, найденного в ssel.banking.domain.Account». Почему вы не проверяете отображение этого свойства? –

+0

Проверьте класс домена ssel.banking.domain.Account 'похоже, что у вас есть дублирующее отображение. Проверьте все аннотации (@Column, @JoinColumn, ...), видите ли вы какие-либо дублирующие имена сопоставлений?. Или может быть из-за наследования/внедрения вы можете оказаться в двойном сопоставлении косвенно. – Jayasagar

ответ

1

Из трассировки стека не выглядит как противоречивого вопроса JAR он выглядит как есть проблема с

ssel.banking.domain.Account 

Проверьте, есть не более чем один отображение поля в столбце «Имя». Стоит также проверять родительские классы/подкласс для свойств с именем «имя».

Публикация содержимого ssel.banking.domain.Account может помочь, если вышеуказанное не соответствует действительности.

Ядро проблемы:

org.hibernate.MappingException: Duplicate property mapping of name found in ssel.banking.domain.Account 
+1

Да .. это ответ. – Mukus

+0

спасибо alex.p. Ты спас свой день. Как плохо я был, когда не заметил этого. Я получил это исключение из-за дублированных полей «имя» в классе ужина. Мое решение - поставить @Transient в это поле в ужине. –

Смежные вопросы