【发布时间】:2017-01-28 14:04:13
【问题描述】:
我在 JDeveloper 11g 下有一个 Java EE 项目,现在我正在迁移到 Eclipse。
我的 Java EE 项目具有标准结构: 项目 C(公用事业项目) 项目 B(EJB 项目) 项目 A(网络项目)
在 JDeveloper 下,这是我们正确发布和使用应用程序的方法:
- 项目 C 被添加为项目 B 和 A 的依赖项(即项目 B 和 A 都访问/利用项目 C 中的 Java 类)
- 项目 A 利用类和对驻留在项目 B 中的会话 bean 的调用,因此项目 B 作为对项目 A 的依赖项添加。
设置完成后,我们要做的就是运行/调试应用程序,然后启动集成的 WebLogic 服务器并部署上述项目。这里没有 EAR/JAR 包装。
迁移到 Eclipse (Neon 2),我们做了以下工作:
- 项目 A、B 和 C 已移至基于 Eclipse 的项目
- 项目 C 已添加到项目 B 和 A 的构建路径中。这导致在 Eclipse IDE 下对所有 3 个项目进行干净(0 错误)编译。
- 项目 C 已添加到项目 B 和 A 的部署程序集中
- 项目 B 已添加到项目 A 的部署程序集中。
- 使用 OEPE,添加了一个新的 Weblogic 服务器并指向 WebLogic 的基域(经过测试,可以正常启动和访问 weblogic 服务器)
尝试发布应用程序时,它一直失败并出现以下错误:
weblogic.deployment.EnvironmentException:应用程序 _auto_generated_ear_ 中的模块 wm-webapp 使用 ejb-links,但未找到此应用程序的 EJB 模块。
为了隔离问题,我尝试单独发布Project B(EJB Project)。我在项目 C 中找到了有问题的类时遇到 ClassDefNotFound 错误。不确定它是否与第一个问题有关,但试图涵盖我们遇到的各种错误。
我有两个主要问题:
- 显然,主要问题是我在这里做错了什么?
- 我假设我仍然可以使用 Eclipse 部署到 WebLogic 服务器,而无需将我的项目打包到 EARS、JAR 等...(就像我们在 JDev 下所做的那样)。这是一个正确的假设吗?我们希望通过 Eclipse 发布,以便我们仍然能够使用“调试”功能,而无需恢复为“通过远程 Java 应用程序调试”或通过本机日志记录等选项...
谢谢。
【问题讨论】:
标签: eclipse jakarta-ee weblogic11g