persistence.xml - spring-JPA
Habe ich gelesen, Dutzende von Artikeln, aber ich kann nicht herausfinden, wo der Fehler ist... sollte es wirklich einfach. Ich bin versucht, zu schreiben app auf appengine mit Spring und JPA.
Ich bin mit JEE5-Projekt (weiß nicht, ob es darauf ankommt)
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="persistenceUnitManager" class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager">
<property name="persistenceXmlLocation">
<value>classpath*:/META-INF/persistence.xml</value>
</property>
</bean>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="transactions-optional" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" />
<bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor" />
Den persistence.xml die Datei befindet sich im META-INF-Verzeichnis (ROOT/META-INF/persistence.xml)
<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="transactions-optional">
<provider>org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider</provider>
<properties>
<property name="datanucleus.NontransactionalRead" value="true"/>
<property name="datanucleus.NontransactionalWrite" value="true"/>
<property name="datanucleus.ConnectionURL" value="appengine"/>
</properties>
</persistence-unit>
</persistence>
Bekomme ich noch diese Ausnahme (ich war versucht zu bewegen meta-inf-Verzeichnis in src Verzeichnis ohne Erfolg, die Ausnahme war der gleiche)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'genericJpaDAO': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: protected javax.persistence.EntityManagerFactory cz.cvut.fel.pupilbook.dao.support.jpa.GenericJpaDAO.entityManagerfactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/context/applicationContext.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: No Persistence provider for EntityManager named transactions-optional
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1074)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:844)
Danke für die Hilfe.
- Ist
META-INF/persistence.xml
in Ihrer Zusammenstellung Ausgang (wo der kompilierten Klassen Regeln)? Wenn Nein, dann haben Sie versucht, zu platzierenMETA-INF/persistence.xml
es manuell und sehen, ob das Problem weiterhin besteht? - yep, seine in der Ziel - /name_of_the_project/META-INF-Ordner, wenn ich es bauen, auch im Projekt.Krieg/META-INF
- Tatsächlich, ich ment, dem Ort, wo Ihre Klassen gehen, das ist, wo Ihre Ordner
cz/cvut/fel/pupilbook/.../OneOfYourClasses.class
platziert werden. AlsoMETA-INF
gehen sollten nebencz
Ordner mit den kompilierten Klassen. Wenn dies nicht funktioniert, aber dann bin ich genauso verwirrt wie Sie sind...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Antwort besteht aus zwei teilen.
So, es war Zufall, der zwei problem, jeder von Ihnen maskierten Teil des anderen.