【问题标题】:Deploy multiple instances of an EAR (representing versions) to Glassfish将 EAR 的多个实例(代表版本)部署到 Glassfish
【发布时间】:2010-03-18 11:09:39
【问题描述】:

我基本上希望能够将同一个 EAR 文件的多个版本部署到同一个服务器(Glassfish 实例?),并且每个版本都有一个唯一的路径来分隔它们。

根据我对此的阅读,似乎多个 EAR 部署到 Web 服务器名称空间的根目录,因此如果它们没有冲突的 WAR 上下文根目录,它们可以共存。

在我的情况下,我宁愿拥有它而不是将所有内容都放在“/”下,我希望能够将给定的 EAR 文件构建标记为始终部署在给定路径下,例如“/foo-20100319”或“/foo-CUSTOMER-20010101”。这可以通过重命名单个 WAR 文件轻松完成。我不需要也不希望他们互相打扰。

据我了解,这种重新映射超出了 application.xml 文件的范围,所以我发现http://docs.sun.com/app/docs/doc/820-7693/beayr?a=view 说我可以指定 web-uri 和 context-root,但我不确定我想要什么要做,可以在 Glassfish 中指定这些。

我应该如何处理这个问题?我可以完全控制构建过程。

(我找到了Deploying multiple Java web apps to Glassfish in one go,但我不确定如何将其应用于我需要的东西)。

【问题讨论】:

    标签: java deployment jakarta-ee glassfish ear


    【解决方案1】:

    application.xml allows you to map a web app that is enclosed in an ear to the context root of your choice。您也可以使用sun-application.xml 来执行此操作。

    由于您可以完全控制构建过程,因此您可以自行选择。

    您可能想read about the --deploymentplan option of the deploy subcommand of GlassFish's asadmin utility。它允许您在部署处理之前将其他文件混合到已部署的存档中......因此,您可以创建一个“通用”ear 文件和一些较短的部署计划文件,“混合”sun-application.xml 文件创建自定义部署所必需的。

    【讨论】:

    • 啊,所以不要告诉 Glassfish 为 webapp 透明地添加一个新的根,如 /foo-1235,你建议我只是在部署描述符中告诉它所有 web 应用程序都有一个 /foo- 1235/foo 路径。我会试试的。
    • 除了部署描述符之外,没有办法告诉 Glassfish 为 ear 或嵌入到 ear 中的 webapp 添加 contextroot。我打开了一个增强功能,可能会捕捉到您的想法。如果我误解了您的意图,请对其进行评估并澄清:glassfish.dev.java.net/issues/show_bug.cgi?id=11710
    • 它看起来像我需要的。我们即将重写我们的部署方案,所以我会考虑到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多