GlassFish3.1,如何在服务器的根目录中部署一个带有WAR的EAR?

GlassFish3.1,如何在服务器的根目录中部署一个带有WAR的EAR?,glassfish,ear,Glassfish,Ear,我在GlassFish 3.1上部署了一场战争 目前,该应用程序在localhost:8080/myapp/index.jsf上运行 我希望它在localhost:8080/index.jsf上运行 为此,我将EAR中的application.xml从contextRoot“myapp”更改为contextRoot=“/” 当我使用GlassFish管理UI部署EAR时,它会给我一个部署错误,然后当我尝试浏览到管理UI时,它会显示默认的GlassFish主页。要恢复,我必须使用asadmin从命

我在GlassFish 3.1上部署了一场战争

目前,该应用程序在localhost:8080/myapp/index.jsf上运行

我希望它在localhost:8080/index.jsf上运行

为此,我将EAR中的application.xml从contextRoot“myapp”更改为contextRoot=“/”

当我使用GlassFish管理UI部署EAR时,它会给我一个部署错误,然后当我尝试浏览到管理UI时,它会显示默认的GlassFish主页。要恢复,我必须使用asadmin从命令行取消部署我的EAR,然后重新启动域以重新启动服务器

我的理论是,我的应用程序和GlassFish管理UI都在根“/”上运行

问题:在GlassFish 3.1的根目录中部署我的web应用程序的正确方法是什么?还是这种做法不好

谢谢

罗伯

罗伯

如果您是从命令行部署的,则可以使用asadmin的参数来选择上下文根。这从来没有给我你描述的问题

$ASADMIN deploy--contextroot“/”your.war

您的另一个选择是在虚拟服务器设置下选择默认的web模块,但我个人更喜欢将一个应用程序设置为/


凯文

最简单的方法就是拥有一个孩子

这是我的配置,位于WEB-INF目录

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app>
   <context-root>/myapplication</context-root>
</glassfish-web-app>

/我的申请

作为一个注释,你应该考虑使用战争而不是耳朵。GlassFish3.x是JavaEE6的参考实现,它有一个将war与EJB结合使用的特性。也就是说,您可以轻松地将war与ejb一起使用,而无需ear bundle。它不仅可以显著减少应用程序的大小,还可以让您在类加载问题、内存占用等方面有一个良好的实践。

我认为我遵循了您的“步骤”,无法复制您看到的问题。我使用的是Mac OS X 1.7.2,GF 3.1.1。你的脚步对我来说很好。。。虽然它们有点模糊,我可能会错误地解释它们,因此我无法复制这个问题。关于“它给了我一个部署错误”的更多细节可能是对这个问题的有益补充。@vkraemer-我为我的问题开始了一个新的更详细的问题,请访问它,非常感谢任何帮助@凯文--我已经详细说明了我的问题,请看一看: