Glassfish无法在root用户部署,因为声明了default-web-module
尝试从Netbeans
和Admin Console
部署到Glassfish Server开源版3.1.2.2(版本5)时,会抛出以下消息。 尽管Admin Console
的“ Applications
部分没有已部署的应用程序。 我尝试重新启动域名但没有成功。
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
是否有任何缓存或可以清空的东西,以清理根,以便我可以再次在根上下文部署我的应用程序? 谢谢你的帮助!
步骤1
我在Glassfish
-directory上使用一个简单的grep
-command开始使用"default-web-module"
。 似乎这是在domains/domain1/config/domain.xml
(我怎么能错过这个想法?)。
第2步
内部domain.xml
如下:
... ...
此外,此application
还提供对以前在root-context="/"
部署的applicationname的多个引用。 我一回到家,就会尝试删除这个...
(当然还有domain.xml
的备份)。 希望这将解决问题,并且我将能够再次部署到root
!
由于我遇到了问题,其他人也可能会遇到这个问题。 出于这个原因,我将回答我自己的问题,而不是删除它。
按照我在问题中提到的步骤,我注意到domain.xml
的配置仍然引用了context-root="/"
的应用程序。 从文件中删除此应用程序并保存后,我可以再次将应用程序部署到/
!
有两种方式:
-
来自Glassfish管理员。
Configurations -> server-config -> Virtual Servers -> server
。 然后为“Default Web Module
属性选择空行并保存。 -
打开文件
glassfish/domains/{your_domain_name}/config/domain.xml
,找到类似的行
并删除default-web-module
属性。
您还可以使用其他默认Web模块
asadmin set server.http-service.virtual-server.server.default-web-module=