当我尝试运行我的测试Web应用程序,我得到这个异常:
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
文件夹:
<?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>
我的data-context.xml
豆definiton文件到WEB-INF
文件夹:
<?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" />
问题出在哪儿?