Glassfish unable to deploy at root because default

2019-01-29 03:58发布

While trying to deploy to Glassfish Server Open Source Edition 3.1.2.2 (build 5) from both Netbeans and Admin Console the following message is thrown. Eventhough the Applications section of the Admin Console has no deployed applications. I have tried restarting the domain without success.

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

Is there any cache or something that can be emptied in order to clean up the root so I can once again deploy my application at root context? Thanks for any help!

Step 1

I started with a simple grep-command on my Glassfish-directory for "default-web-module". Seems this was defined in domains/domain1/config/domain.xml (how could I have missed to think of that?).

Step 2

Inside domain.xml is the following:

<applications>
    <application context-root="/" ...>
         ...
    </application>
    ...
</applications>

Also, this application caries multiple references to the applicationname that was previously deployed in root-context="/". As soon as I'm home I will try removing this <application context-root="/" ...>...</application> (ofcourse with a backup of domain.xml). Hope this will solve the problem and that I will be able to deploy to root again!

3条回答
做个烂人
2楼-- · 2019-01-29 04:25

You can also set other default web module with

asadmin set server.http-service.virtual-server.server.default-web-module=<name of the module>
查看更多
手持菜刀,她持情操
3楼-- · 2019-01-29 04:39

Since I ran into the problem it's probable that others will too. For this reason I will answer my own question instead of deleting it.

Following the steps I've mentioned in the question, I noticed the config in domain.xml still had reference to an application with context-root="/". Upon removing this application from the file and saving it, I could once again deploy an application to /!

查看更多
▲ chillily
4楼-- · 2019-01-29 04:39

There 2 ways:

  1. From Glassfish admin.

    Configurations -> server-config -> Virtual Servers -> server. Then select empty row for Default Web Module attribute and save.

  2. Open file glassfish/domains/{your_domain_name}/config/domain.xml, find line similar to

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

and delete default-web-module attribute.

查看更多
登录 后发表回答