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 platzieren META-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. Also META-INF gehen sollten neben cz Ordner mit den kompilierten Klassen. Wenn dies nicht funktioniert, aber dann bin ich genauso verwirrt wie Sie sind...
InformationsquelleAutor malejpavouk | 2011-02-20
Schreibe einen Kommentar