【问题标题】:Publishing Java EE project under Eclipse to WebLogic Server将 Eclipse 下的 Java EE 项目发布到 WebLogic Server
【发布时间】:2017-01-28 14:04:13
【问题描述】:

我在 JDeveloper 11g 下有一个 Java EE 项目,现在我正在迁移到 Eclipse。

我的 Java EE 项目具有标准结构: 项目 C(公用事业项目) 项目 B(EJB 项目) 项目 A(网络项目)

在 JDeveloper 下,这是我们正确发布和使用应用程序的方法:

  1. 项目 C 被添加为项目 B 和 A 的依赖项(即项目 B 和 A 都访问/利用项目 C 中的 Java 类)
  2. 项目 A 利用类和对驻留在项目 B 中的会话 bean 的调用,因此项目 B 作为对项目 A 的依赖项添加。

设置完成后,我们要做的就是运行/调试应用程序,然后启动集成的 WebLogic 服务器并部署上述项目。这里没有 EAR/JAR 包装。

迁移到 Eclipse (Neon 2),我们做了以下工作:

  1. 项目 A、B 和 C 已移至基于 Eclipse 的项目
  2. 项目 C 已添加到项目 B 和 A 的构建路径中。这导致在 Eclipse IDE 下对所有 3 个项目进行干净(0 错误)编译。
  3. 项目 C 已添加到项目 B 和 A 的部署程序集中
  4. 项目 B 已添加到项目 A 的部署程序集中。
  5. 使用 OEPE,添加了一个新的 Weblogic 服务器并指向 WebLogic 的基域(经过测试,可以正常启动和访问 weblogic 服务器)

尝试发布应用程序时,它一直失败并出现以下错误:

weblogic.deployment.EnvironmentException:应用程序 _auto_generated_ear_ 中的模块 wm-webapp 使用 ejb-links,但未找到此应用程序的 EJB 模块。

为了隔离问题,我尝试单独发布Project B(EJB Project)。我在项目 C 中找到了有问题的类时遇到 ClassDefNotFound 错误。不确定它是否与第一个问题有关,但试图涵盖我们遇到的各种错误。

我有两个主要问题:

  1. 显然,主要问题是我在这里做错了什么?
  2. 我假设我仍然可以使用 Eclipse 部署到 WebLogic 服务器,而无需将我的项目打包到 EARS、JAR 等...(就像我们在 JDev 下所做的那样)。这是一个正确的假设吗?我们希望通过 Eclipse 发布,以便我们仍然能够使用“调试”功能,而无需恢复为“通过远程 Java 应用程序调试”或通过本机日志记录等选项...

谢谢。

【问题讨论】:

    标签: eclipse jakarta-ee weblogic11g


    【解决方案1】:

    我假设我仍然可以使用 Eclipse 部署到 WebLogic 服务器 无需将我的项目打包到 EARS、JAR 等...(只需 就像我们在 JDev 下所做的那样)。这是一个正确的假设吗?

    错了。

    这是过度依赖 Eclipse 等 IDE 的问题之一:它让您不知道发生了什么。

    Java EE 应用服务器要求您将应用打包到 WAR(或 EAR,如果您有 EJB)中。 IntelliJ 创建了一个分解的 WAR,因此您不必打包和移动 WAR 文件。但工件中文件的布局完全符合 WAR 标准。

    【讨论】:

    • 很公平。但是,这里有些东西没有意义。如果在 Eclipse 下并在 WebLogic 服务器上运行,则发布的唯一方法是实际生成 EAR/War 文件并手动部署它们;那么你最终将如何通过 IDE 调试你的代码呢?对于像 Eclipse 这样的高级 IDE 来说,这听起来太麻烦了
    • IntelliJ 使用分解的 WAR 在本地运行,但是当我将其部署到 Java EE 应用程序时,我的 CI 构建工具 Jenkins 创建了一个 WAR 并将其放在 JBOSS 的 /deployment 文件夹中。 Eclipse/WebLogic 必须做类似的事情。
    猜你喜欢
    • 2010-12-29
    • 2011-01-31
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2022-01-14
    • 2019-06-29
    相关资源
    最近更新 更多