2

我的 IntelliJ 中有一个 EJB 和一个 WEB 模块,创建了 5 个我希望使用注释加载到数据库中的实体。

我转到模块下的项目设置,然后选择我要添加 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 方面?

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

4

1 回答 1

2

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

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

persistence.xml 也不在 WEB 模块下,但我认为它应该在 EJB 模块下

这完全取决于您如何打包和部署实体,这可以通过多种方式完成(请参阅关于持久性单元打包选项您可能需要了解的内容)。

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

但是您可以将它们打包在 Web 模块中,这在您的情况下会更简单。请参阅上面的链接。

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

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

If this is not intended, is there anything in particular I need to do in IntelliJ to make persistence.xml being deployed on server? Maybe its something in particular I need to do with my JPA facet?

Can't say. Maybe the following link could help: Enabling JPA Support.

于 2010-11-01T09:07:35.567 回答