2010-10-30 62 views
2

我的IntelliJ中有一个EJB和一个WEB模块,创建了5个实体,我希望使用注释加载到数据库中。在glassfish部署描述符(IntelliJ)上找不到persistence.xml

我去模块下的项目设置,并选择我想添加JPA方面,我知道有一个EJB,WEB和JPA方面。我使用eclipselink,所以我在JPA设置下检查了它,然后添加了我的persistence.xml文件,配置了该文件。

问题是,在部署时,它不会部署persistence.xml文件,这意味着在部署描述符下选择我的应用程序时,我无法在我的glassfish 3.0服务器中找到它。我只能在EJB模块下找到我的sun-web-ejb.xml。 persistence.xml也不在WEB模块下,但我认为它应该在EJB模块下。

是否意味着我的persistence.xml不应该加载到服务器上,以便我可以在GF管理控制台(应用程序 - > EJB模块 - >部署描述符)下找到xml文件?

如果不是这个意思,我有什么特别需要在IntelliJ中做persistence.xml部署在服务器上?也许它特别需要处理我的JPA方面?

感谢您对此提供的任何反馈,如果有必要,我可以提供有关我的设置的更多详细信息。

回答

2

我只能在EJB模块下找到我的sun-web-ejb.xml。

这已经很奇怪了。如果我没有错,这是Web模块的专有部署描述符。

的persistence.xml不是Web模块下任,但我相信它应该是EJB模块反正

这一切都取决于你如何打包和部署你的实体,可以做下有几种方式(见What You May Need to Know About Persistence Unit Packaging Options)。

如果您的实体打包在EJB-JAR中,则persistence.xml必须放在META-INF目录中。

但是你可以将它们打包到Web模块中,这对你来说会更简单。看到上面的链接。

是否意味着我的persistence.xml不应该加载到服务器上,以便我可以在GF管理控制台(应用程序 - > EJB模块 - >部署描述符)下找到xml文件?

我建议检查物理JAR是否包含META-INF/persistence.xml

如果这不是打算,有什么特别的我需要在IntelliJ中做的persistence.xml部署在服务器上?也许它特别需要处理我的JPA方面?

不能说。也许下面的链接可以帮助:Enabling JPA Support

+1

非常感谢您的帮助,您在哪里正确,这取决于我如何打包它,所以在我的情况下,我的GF 3.0服务器上不应该列出persistence.xml。 此外,我还要感谢您就EE开发所做的其他一些职位,我去看了一下您的个人资料,并看到您推荐了一本带有Java 3.0的Java 3.0平台的书。这也有很大帮助。 我也不得不承认,我有点压力,因为我在我的最后(学校)有一个时间表,我不知道什么时候所有的企业作品都会落到位。 – user294937 2010-11-05 14:35:35

+0

@ user294937:不客气。很高兴你发现我的其他答案也有帮助。感谢您的反馈。 – 2010-11-06 09:32:24