2010-03-18 60 views
1

我基本上希望能够将同一个EAR文件的多个版本部署到同一个服务器(Glassfish实例?),并且每个版本都有一个唯一路径将它们分开。将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,但我不确定如何将它应用到我需要的)。

回答

2

The 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文件这是创建自定义部署所必需的。

+0

啊,所以不要告诉Glassfish为webapp透明地添加一个像/ foo-1235这样的新根目录,而是建议我只是在部署描述符中告诉它所有web应用程序都有一个/ foo-1235/foo路径。我会尽力。 –

+0

没有办法告诉Glassfish为ear或嵌入到除部署描述符以外的耳朵的webapp添加一个contextroot。我打开了一个可能捕捉你想法的增强功​​能。如果我误解了你的意图,请评估并澄清它:https://glassfish.dev.java.net/issues/show_bug.cgi?id=11710 – vkraemer

+0

它看起来像我所需要的。我们即将重写我们的部署方案,所以我会考虑到这一点。 –