2012-04-11 15 views
0

私は私のテストWebアプリケーションを実行しようとすると、私はこの例外を取得:JPAとSpring MVCの設定が間違っていますか?

org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'myDAO': 
Injection of persistence dependencies failed; 
nested exception is org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'emf' defined in ServletContext resource 
[/WEB-INF/testapp-servlet.xml]: 
Invocation of init method failed; 
nested exception is javax.persistence.PersistenceException: 
No Persistence provider for EntityManager named testapp 

マイpersistence.xmlファイルがMETA-INFフォルダ内にある:私のdata-context.xml豆definitonファイルがWEB-INFにある

<?xml version="1.0" encoding="UTF-8" ?> 
<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_2_0.xsd" 
version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"> 
<persistence-unit name="testapp" transaction-type="RESOURCE_LOCAL"> 
    <class>it.testapp.entities.Person</class> 
    <class>it.testapp.entities.Group</class> 
    <properties> 
     <property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" /> 
     <property name="javax.persistence.jdbc.url" 
      value="jdbc:sqlserver://localhost;databaseName=db_testapp" /> 
     <property name="javax.persistence.jdbc.user" value="user1" /> 
     <property name="javax.persistence.jdbc.password" value="" /> 
    </properties> 

</persistence-unit> 

フォルダ:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> 


<context:annotation-config /> 
<context:component-scan base-package="it.testapp.dao" /> 

<bean id="emf" 
    class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"> 
    <property name="persistenceUnitName" value="testapp"></property> 
</bean> 

<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> 

<bean id="aDao" class="it.testapp.dao.jpa.PersonJpaDAO" /> 

問題はどこですか?

+0

可能な複製:http://stackoverflow.com/questions/1158159/no-persistence-provider-for-entitymanager-named –

+0

@CarlosGavidia同じ問題ですが、解決できません... – davioooh

答えて

1

タグを<persistence-unit>の下に追加する必要がありますか?

(例えば<provider>org.hibernate.ejb.HibernatePersistence</provider>

また、this answer/WEB-INF/classes/META-INFであなたのpersistence.xmlを持っていないことも、このエラーを誘発する可能性が示唆されました。

+0

私は試してみましたが、変更... – davioooh

+0

それは別の例外ではないですか?そうでなければ、クラスパスに 'org.hibernate.ejb.HibernatePersistence'がありますか? –

+0

同じ例外です...私はHibernate 4を使用していますので、クラスパスに 'hibernate-entitymanager-4.1.1.Final.jar'を入れてください – davioooh

関連する問題