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

时间:2018-04-04 09:05:01

标签: eclipse hibernate maven java-ee entitymanager

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

我正在应对以下情况:

TEST1

  1. 我在eclipse中右键点击了一个项目 - >更新项目 - >选择 全部 - >确定
  2. 从服务器视图:右键单击glassfish - >调试
  3. 从服务器视图:右键单击glassfish - >添加和删​​除 - >加 “clusterer”模块(见下面我的maven结构)
  4. 转到http://localhost:8080/clusterer/webapi/myresource我的ws 工作得很好
  5. TEST2

    1. 在父项目上单击右键 - >以 - >运行maven clean
    2. 在父项目上单击右键 - >以 - >运行maven安装
    3. 从父项目复制战争 - >粘贴它 path_folder / clusterer.war
    4. 停止上一次测试的域名(假设为domain1)
    5. 开始一个新域名(比如说domain2)
    6. asadmin --force deploy path_folder / clusterer.war
    7. 转到http://localhost:8080/clusterer/webapi/myresource
    8. 我收到以下错误:无法检索unitName DBClusterer的EntityManagerFactory
    9. 我的 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构建路径中标记为源目录)。

1 个答案:

答案 0 :(得分:0)

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