Spring 3.1.1 Maven 3.0.4 JPA Eclipse wtp indigo
Spring 3.1.1 Maven 3.0.4 JPA Eclipse wtp indigo
您好,我是在服务器启动时收到以下异常。我的项目中只有一个persistence.xml。有任何想法吗?感谢Eric
Hello, I am getting the following exception on server startup. I have just one persistence.xml in my project. Any ideas? Thanks Eric
导致:java.lang.IllegalStateException:名称为cassandra_pu的冲突持久性单元定义:file:/ C:/ workspace /.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/cassandra/WEB-INF/classes/,file:/ C:/workspace/.metadata/.plugins/org.eclipse.wst。 org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager.preparePersistenceUnitInfos(DefaultPersistenceUnitManager.java:362)中的server.core / tmp1 / wtpwebapps / cassandra / WEB-INF / classes / 在org.springframework上的。 orm.jpa.persistenceunit.DefaultPersistenceUnitManager.afterPropertiesSet(DefaultPersistenceUnitManager.java:326)在org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:235)在org.springframework.orm。 jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310)在org.springframework。 bean.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452) ...更多62
Caused by: java.lang.IllegalStateException: Conflicting persistence unit definitions for name 'cassandra_pu': file:/C:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/cassandra/WEB-INF/classes/, file:/C:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/cassandra/WEB-INF/classes/ at org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager.preparePersistenceUnitInfos(DefaultPersistenceUnitManager.java:362) at org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager.afterPropertiesSet(DefaultPersistenceUnitManager.java:326) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:235) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452) ... 62 more
我的上下文文件:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="www.springframework/schema/beans" xmlns:mvc="www.springframework/schema/mvc" xmlns:context="www.springframework/schema/context" xmlns:tx="www.springframework/schema/tx" xmlns:p="www.springframework/schema/p" xmlns:xsi="www.w3/2001/XMLSchema-instance" xsi:schemaLocation="www.springframework/schema/beans www.springframework/schema/beans/spring-beans-3.0.xsd www.springframework/schema/context www.springframework/schema/context/spring-context-3.0.xsd www.springframework/schema/mvc www.springframework/schema/mvc/spring-mvc-3.0.xsd www.springframework/schema/tx www.springframework/schema/tx/spring-tx-3.0.xsd"> <context:component-scan base-package="hamacher.cassandra.controller" /> <context:component-scan base-package="hamacher.cassandra.dao" /> <context:component-scan base-package="hamacher.cassandra.service" /> <context:annotation-config /> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="packagesToScan" value="hamacher.cassandra.entity"/> <property name="persistenceUnitName" value="cassandra_pu"/> </bean> <tx:annotation-driven /> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory" /> </bean> </beans>我的persistence.xml文件位于META-INF中,应该是:
My persistence.xml file is in META-INF where it should be:
<persistence xmlns="java.sun/xml/ns/persistence" xmlns:xsi="www.w3/2001/XMLSchema-instance" xsi:schemaLocation="java.sun/xml/ns/persistence java.sun/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> <persistence-unit name="cassandra_pu"> <provider>com.impetus.kundera.KunderaPersistence</provider> <properties> <property name="kundera.nodes" value="localhost"/> <property name="kundera.port" value="9160"/> <property name="kundera.keyspace" value="KunderaExamples"/> <property name="kundera.dialect" value="cassandra"/> <property name="kundera.client.lookup.class" value="com.impetus.client.cassandra.pelops.PelopsClientFactory" /> <property name="kundera.cache.provider.class" value="com.impetus.kundera.cache.ehcache.EhCacheProvider"/> <property name="kundera.cache.config.resource" value="/ehcache-test.xml"/> </properties> </persistence-unit> </persistence>推荐答案
尝试添加
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> <bean id="emf-p" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <!-- <property name="persistenceXmlLocation" value="/WEB-INF/classes/META-INF/persistence.xml" /> --> <property name="persistenceUnitManager" ref="pum"/> <property name="persistenceUnitName" value="personnel_cass_pu" /> <property name="loadTimeWeaver"> <bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" /> </property> </bean>使用Spring bean定义persistence.xml位置。
To define your persistence.xml location with Spring bean.
您还可以参考: github/xamry/twitample/blob/master/src/main/resources/appContext.xml
persistence.xml 具体配置。
更多推荐
冲突的持久性单位定义
发布评论