为什么 glassfish5 没有正确部署我的 war?

Why glassfish5 does not deploy my war correctly?

我正在使用 Eclipse 版本:Oxygen.3 Release (4.7.3)、Glassfish 5、java version 1.8.0_161、Hibernate 5.2.16(作为 JPA 实现)和 maven .

我正在应对以下情况:

test1

  1. 我在eclipse中右击一个项目->更新项目->select 全部 -> 正常
  2. 从服务器视图:右键单击 glassfish -> 调试
  3. 从服务器视图:右键单击 glassfish -> 添加和删除 -> 添加 "clusterer"模块(见下面我的maven结构)
  4. http://localhost:8080/clusterer/webapi/myresource,我的ws 工作正常!

test2

  1. 右击父项目 -> 运行 as -> maven clean
  2. 右击父项目 -> 运行 as -> maven install
  3. 从父项目复制 war -> 粘贴到 path_folder/clusterer.war
  4. 停止先前测试的域(比如域 1)
  5. 开始一个新域(假设是域 2)
  6. asadmin --force deploy path_folder/clusterer.war
  7. 转到http://localhost:8080/clusterer/webapi/myresource
  8. 我收到以下错误:无法检索 unitName DBClusterer 的 EntityManagerFactory

我的maven项目结构如下:

p1  (parent pom with modules)
|   |  |
|   |  Clusterer (war)
|   |
|   ClusterService (ejb)
|
DBClusterer (jar)

hibernate.cfg.xml 和 persistence.xml(包含之前引用的持久性单元 "DBClusterer")位于 DBClusterer 模块中。 hibernate.cfg.xml 位于 src/main/resources(在 java 构建路径中标记为源目录)。 persistence.xml 位于 src/main/java/META-INF(其中 src/main/java 被标记为 java 构建路径中的源目录)。

我刚刚解决了这个问题。 Maven 希望将 persistence.xml 放入 main/java/resources/META-INF