【发布时间】:2015-06-07 21:45:08
【问题描述】:
我正在构建一个简单的 webapp 来练习 java web 开发。我正在使用 Netbeans 和 maven,我尝试手动添加 JPA 支持,添加以下文件,这是 JPA 中的标准配置文件。
src/main/resources/META-INF/persistence.xml
我还有一个简单的实体类:
package com.pet.shop.repository;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Animal implements Serializable{
@Id
private int id;
}
然后我尝试像这样调用我的 entitymanager:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("PetShopJPA");
但是我收到以下错误:
我的 pom.xm 文件具有以下依赖项:
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.17</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
我的 web.xml 只有一个 servlet 配置:
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<servlet>
<servlet-name>IndexServlet</servlet-name>
<servlet-class>com.pet.shop.servlets.IndexServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>IndexServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>
我的 tomcat /lib 有:
我的 persistence.xml 是:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" 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">
<persistence-unit name="PetShopJPA" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>com.pet.shop.repository.Animal</class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/petshop"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="m$1234"/>
</properties>
</persistence-unit>
</persistence>
请帮忙。
【问题讨论】:
-
请添加persistence.xml
-
我添加了我的 persistence.xml