Tomcat+Eclipse链接+Vaadin,NoClassDefFoundError javax/persistence/persistence

Tomcat+Eclipse链接+Vaadin,NoClassDefFoundError javax/persistence/persistence,eclipse,tomcat,hyperlink,vaadin,Eclipse,Tomcat,Hyperlink,Vaadin,我在基于MySQL数据库的web应用程序中使用Vaadin和Eclipse链接。 我有一个管理db操作的类: public class DatabaseManager { private static final String PERSISTENCE_UNIT_NAME = "students"; private static EntityManagerFactory factory; private static EntityManager em; publ

我在基于MySQL数据库的web应用程序中使用Vaadin和Eclipse链接。 我有一个管理db操作的类:

public class DatabaseManager {

    private static final String PERSISTENCE_UNIT_NAME = "students";
    private static EntityManagerFactory factory;
    private static EntityManager em;

    public DatabaseManager() {
        factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
        em = factory.createEntityManager();
    }

    public void addEntry(Student student) {

        em.getTransaction().begin();
        em.persist(student);
        em.getTransaction().commit();
    }
}
以及以下persistence.xml文件:

<?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="students" transaction-type="RESOURCE_LOCAL">
  <class>com.example.simplegradebook.Student</class>
  <properties>
  <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver" />
  <property name="javax.persistence.jdbc.url" value="jdbc:derby:C:\\Users\\Ja\\workspace\\SimpleDB;create=true" />
  <property name="javax.persistence.jdbc.user" value="test" />
  <property name="javax.persistence.jdbc.password" value="test" />

  <!-- EclipseLink should create the database schema automatically -->
  <!-- <property name="eclipselink.ddl-generation" value="drop-and-create-tables" /> -->
  <property name="eclipselink.ddl-generation.output-mode" value="both" />
</properties>
在我的Vaadini类中,我会遇到如下错误:

com.vaadin.server.ServiceException: java.lang.NoClassDefFoundError:      javax/persistence/Persistence
com.vaadin.server.VaadinService.handleExceptionDuringRequest(VaadinService.java:1463)
com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1417)
com.vaadin.server.VaadinServlet.service(VaadinServlet.java:237)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

java.lang.NoClassDefFoundError: javax/persistence/Persistence
com.example.simplegradebook.DatabaseManager.<init>(DatabaseManager.java:19)
com.example.simplegradebook.SimplegradebookUI.init(SimplegradebookUI.java:44)
com.vaadin.ui.UI.doInit(UI.java:641)
com.vaadin.server.communication.UIInitHandler.getBrowserDetailsUI(UIInitHandler.java:222)
com.vaadin.server.communication.UIInitHandler.synchronizedHandleRequest(UIInitHandler.java:74)
com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1405)
com.vaadin.server.VaadinServlet.service(VaadinServlet.java:237)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

有什么想法会导致问题吗?

您确定javax.persistence_2.1.0.v201304241213.jar位于已部署的WEB-INF/lib文件夹中吗?问题已解决,谢谢:在这里写下问题所在有助于其他人解决同样的问题;问题是你写的东西,我想这很清楚:所以,准确地说,我没有把我的JAR放在WEB-INF/lib文件夹中。
com.vaadin.server.ServiceException: java.lang.NoClassDefFoundError:      javax/persistence/Persistence
com.vaadin.server.VaadinService.handleExceptionDuringRequest(VaadinService.java:1463)
com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1417)
com.vaadin.server.VaadinServlet.service(VaadinServlet.java:237)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

java.lang.NoClassDefFoundError: javax/persistence/Persistence
com.example.simplegradebook.DatabaseManager.<init>(DatabaseManager.java:19)
com.example.simplegradebook.SimplegradebookUI.init(SimplegradebookUI.java:44)
com.vaadin.ui.UI.doInit(UI.java:641)
com.vaadin.server.communication.UIInitHandler.getBrowserDetailsUI(UIInitHandler.java:222)
com.vaadin.server.communication.UIInitHandler.synchronizedHandleRequest(UIInitHandler.java:74)
com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1405)
com.vaadin.server.VaadinServlet.service(VaadinServlet.java:237)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
javax.persistence_2.1.0.v201304241213.jar
javax.persistence.source_2.1.0.v201304241213.jar