2014-02-19 44 views
0

我正在尝试使用JPA EclipseLink执行vaadin7应用程序。我创建了一个文件夹META-INFsrc/但不工作,波纹管返回此错误:使用eclipselink时,在何处放置persistence.xml?

javax.servlet.ServletException: com.vaadin.server.ServiceException: javax.persistence.PersistenceException: No Persistence provider for EntityManager named myapp 
com.vaadin.server.VaadinServlet.service(VaadinServlet.java:240) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 

我加入构建路径和WEB-INF/libpersistences.xmlsrc/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="myapp" transaction-type="RESOURCE_LOCAL"> 
     <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
     <class>com.example.testejpa.HelloWorld</class> 

     <properties> 
      <property name="javax.persistence.jdbc.driver" value="com.mysq.jdbc.Driver" /> 
      <property name="javax.persistence.jdbc.url" value="jdbc:mysql://xxx.xxx.xxx.xxx:3306/mydb" /> 
      <property name="javax.persistence.jdbc.user" value="user" /> 
      <property name="javax.persistence.jdbc.password" value="pass" /> 
      <property name="eclipselink.logging.level" value="FINE"/> 
    </properties> 

    </persistence-unit> 
</persistence> 

任何想法为什么这个例外?

+0

的src/META-INF是不是在运行时有效,它应该是被添加到WEB-INF/lib下的jar的META-INF。但是,错误消息表明您的配置文件已找到。这意味着可能是EclipseLink罐子丢失,或者JPA读取的配置文件已过期。 –

回答

1

该文件被命名为persistence.xml,而不是像您所做的那样命名为persistences.xml。

它必须放置在META-INF文件夹中。确保该文件夹包含在WEB-INF文件夹中。

从该Java EE 6 Tutorial

如果打包持久性单元作为一个WAR文件一组类, 的persistence.xml应位于WAR文件的 WEB-INF /班/ META -INF目录。

如果你在一个JAR文件,该文件将包含在WAR或EAR文件 打包持久化单元,JAR文件应位于 要么

  • 的的WEB-INF/lib目录WAR
  • EAR文件的库目录
0
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 

你有persistanceProvider

它正在寻找EntityManager提供商。 EntityManager用于将数据保存到数据库中。 我想这可能是问题,你需要将它添加到你的persisteance.xml文件。

相关问题