尝试从Netbeans
和Admin 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
!
答案 0 :(得分:2)
由于我遇到了问题,其他人也可能会遇到问题。出于这个原因,我将回答我自己的问题而不是删除它。
按照我在问题中提到的步骤,我注意到domain.xml
中的配置仍然引用了context-root="/"
的应用程序。从文件中删除此应用程序并保存后,我可以再次将应用程序部署到/
!
答案 1 :(得分:2)
有两种方式:
来自Glassfish管理员。
Configurations -> server-config -> Virtual Servers -> server
。然后为Default Web Module
属性选择空行并保存。
打开文件glassfish/domains/{your_domain_name}/config/domain.xml
,找到类似于
<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模块重新分配给其各自的虚拟服务器。