【问题标题】:Dependency from web module not deployed on Weblogic server 10.3.6 via Eclipse Kepler来自未通过 Eclipse Kepler 部署在 Weblogic 服务器 10.3.6 上的 Web 模块的依赖关系
【发布时间】:2014-12-28 12:22:29
【问题描述】:

所以我们有一个包含三个模块的 Ear 项目 (MyEar):

  • 客户端模块(我们称之为MyClient
  • EJB 模块(我们称之为MyEjbModule
  • Web 模块(我们称之为MyWebModule

web模块包含MyWebModule/WebContent/MyApp.jnlp下的jnlp文件 此 jnlp 指向所需的 jar 文件,我们希望将其与应用程序一起自动部署,而这正是我们目前面临的一些问题。

在 Eclipse 中,我们将 MyWebModule 项目设置为将 jar 文件从某个位置部署到应用程序的根目录(jnlp 文件也部署在该位置)。

这在一台机器上运行良好,每次我们将项目发布到服务器时,都会从指定位置复制一个新的 jar。但是,在另一台机器上,项目可以正确部署除此 jar 之外的所有内容,我们必须将其与 jnlp 文件放在 WebContent 下才能部署(这意味着我们必须每次都手动更新该 jar)。

经过大量研究并试图寻找环境中的差异,我们在{workspace}/.metadata/.plugins/org.eclipse.core.resources/.projects/MyEar/beadep/my_domain/MyEar/ 文件夹下发现了一个差异,这似乎是 Eclipse 在发布到服务器之前暂存 EAR 的位置

在工作部署中,每次发布应用时,我们都会看到更新后的 ear 文件夹结构:

  • 元信息
  • MyClient.jar
  • MyEJBModule.jar
  • MyWebModule.war

并且 web 模块的 WAR 文件夹包含 jnlp 文件旁边的正确 jar。

但是,在另一台机器上,在该文件夹下,我们看到一个名为 split_src 的文件夹,其中仅包含一个 META-INF 文件夹,其中包含几个描述符和一个名为 .beabuild.txt 的文件

值得注意的是,将 EAR 项目导出到 ear 文件时,jar 会被正确复制并按原样放置在 ear 中。

有谁知道为什么beadep 文件夹中的差异,以及为什么不将依赖项复制到一台机器上?

【问题讨论】:

  • 你在使用 Maven 吗? stackoverflow.com/questions/8489277/…我建议继续导出ear而不是依赖Eclipse来正确部署
  • 不使用 Maven,但我们可能很快就会迁移。这当然是开发部署,所以这里需要Eclipse,而且每次都导出到EAR,效率有点低……

标签: java eclipse deployment weblogic ear


【解决方案1】:

好的,原来我们的两台机器有不同的“发布模式”设置。

我不确定确切的原因,但是如果您将服务器发布模式设置为“Exploded Archive”,那么额外的依赖项会正确部署到 Web 模块中,这与虚拟应用程序(拆分源)发布模式不同

this question有更多信息

【讨论】:

    猜你喜欢
    • 2015-01-10
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 2020-10-10
    • 2019-08-17
    相关资源
    最近更新 更多