persistence.xml-springjpa
我读了几十篇文章,但我不知道错误在哪里。。。它应该非常简单。我正在尝试使用Spring和JPA在appengine上编写应用程序 我正在使用JEE5项目(不知道是否重要)persistence.xml-springjpa,spring,google-app-engine,jpa,Spring,Google App Engine,Jpa,我读了几十篇文章,但我不知道错误在哪里。。。它应该非常简单。我正在尝试使用Spring和JPA在appengine上编写应用程序 我正在使用JEE5项目(不知道是否重要) 谢谢你的帮助。答案由两部分组成 denisk关于persistence.xml的位置是正确的,它应该在src下 我缺少了一些对datanucleus的依赖关系(我认为它们是提供的)。在添加它们之后,我得到了大量相关的例外情况。解决这些问题后,一切正常 所以-这是两个问题的巧合,每个问题都掩盖了另一个问题的一部分。在编译输出中(
谢谢你的帮助。答案由两部分组成
所以-这是两个问题的巧合,每个问题都掩盖了另一个问题的一部分。在编译输出中(编译类的位置)是
META-INF/persistence.xml
?如果没有,那么您是否尝试手动将META-INF/persistence.xml
放在那里,并查看问题是否仍然存在?是的,当我构建它时,它在\u项目/META-INF文件夹的target/name\u中,也在project.war/META-infact中,实际上是您的类所在的位置,您的文件夹cz/cvut/fel/pupilbook/../yourclass.class
放置在此处。因此,META-INF
应该转到cz
文件夹下的编译类。但是,如果这不起作用,那么我和你一样困惑……你能发布完整的解决方案吗。我的意思是,在那之后,你做了什么改变?很好。对不起,这个答案已经有两年多的历史了,我没有可用的来源:-(
<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" />
<?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>
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)