Glassfish无法在root用户部署,因为声明了default-web-module

时间:2013-05-06 20:31:19

标签: java deployment glassfish

尝试从NetbeansAdmin Console部署到Glassfish服务器开放源代码3.1.2.2(版本5)时,会抛出以下消息。尽管Applications的{​​{1}}部分没有已部署的应用程序。我尝试重新启动域名但没有成功。

Admin Console

是否有任何缓存或某些东西可以清空以清理根,以便我可以再次在根上下文部署我的应用程序?谢谢你的帮助!

第1步

我从Exception while loading the app : java.lang.Exception: WEB0145: Unable to deploy web module [*module name*] at root context of virtual server [server], because this virtual server declares a default-web-module - grep目录开始使用简单的Glassfish命令。似乎这是在"default-web-module"中定义的(我怎么能错过这个想法?)。

第2步

内部domains/domain1/config/domain.xml如下:

domain.xml

此外,此<applications> <application context-root="/" ...> ... </application> ... </applications> 会对先前在application中部署的应用程序名称进行多次引用。我一回到家,就会尝试删除此root-context="/"(当然是<application context-root="/" ...>...</application>的备份)。希望这能解决问题,并且我将能够再次部署到domain.xml

4 个答案:

答案 0 :(得分:2)

由于我遇到了问题,其他人也可能会遇到问题。出于这个原因,我将回答我自己的问题而不是删除它。

按照我在问题中提到的步骤,我注意到domain.xml中的配置仍然引用了context-root="/"的应用程序。从文件中删除此应用程序并保存后,我可以再次将应用程序部署到/

答案 1 :(得分:2)

有两种方式:

  1. 来自Glassfish管理员。

    Configurations -> server-config -> Virtual Servers -> server。然后为Default Web Module属性选择空行并保存。

  2. 打开文件glassfish/domains/{your_domain_name}/config/domain.xml,找到类似于

  3. 的行
    <virtual-server id="server" default-web-module="web-module-name.war" network-listeners="http-listener-1,http-listener-2"></virtual-server>
    

    并删除default-web-module属性。

答案 2 :(得分:0)

您还可以使用

设置其他默认Web模块
asadmin set server.http-service.virtual-server.server.default-web-module=<name of the module>

答案 3 :(得分:0)

问题是由于glassfish将任何新部署的Web模块分配给除_asadmin之外的所有可用虚拟服务器的事实。如果任何一台服务器已经分配了默认的Web模块,则将收到此错误。解决方案是登录您的glassfish网站管理员,导航到configurations > server-config > Virtual Servers单击每个虚拟服务器,然后删除分配的默认网站模块。部署您的应用程序,然后将每个Web模块重新分配给其各自的虚拟服务器。