Persistence.xml放在eclipse项目中的位置

Mar*_*rów 11 eclipse ejb jpa glassfish persistence.xml

简单的问题...
我在Eclipse环境
MainApp(企业应用程序项目)中有一些项目"包含"

  1. WebController(EJB项目)
  2. WebModel(JPA项目)
  3. WebView(动态Web项目)


问题是把persistance.xml文件放在哪里?

获取异常:java.lang.IllegalStateException:无法为unitName DataModel检索EntityManagerFactory

Vin*_*lds 14

persistence.xml文件通常存在于src/META-INF持久性(JPA)项目的目录中.如果项目是使用Eclipse创建的,则通常会创建它并将其放置在那里.


Edw*_*rzo 13

8.2节中的JPA 2.0规范说明了包装的要求.它说

持久性单元由persistence.xml文件定义.META-INF目录包含persistence.xml文件的jar文件或目录称为持久性单元的根.

在Java EE环境中,持久性单元的根必须是以下之一:

  • EJB-JAR文件
  • WAR文件的WEB-INF/classes目录[80]
  • WAR文件的WEB-INF/lib目录中的jar文件
  • EAR库目录中的jar文件
  • 应用程序客户端jar文件

除非持久性单元包含除EJB-JAR或WAR中包含的持久性类之外的持久性类,否则不要求将包含持久性单元的EJB-JAR或WAR文件打包在EAR中.见8.2.1.6节.

如果您认为有必要,可以阅读本章的其余部分.在Eclipse中,这意味着您需要配置项目之间的依赖关系,以确保正确打包部署文件.您通常在Projects选项卡的Project-> Properties-> Build Path中配置它.

但是,我不确定Eclipse是否按照Web服务器部署的要求对其进行打包.我知道它在EAR项目中有效.