我使用的是Maven WildFly插件,我的pom.xml
中有以下内容(版本是2.0.1.Final
,路径指向本地WildFly 8.2.1.Final
服务器)。
<build>
<plugins>
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>${wildfly.version}</version>
<configuration>
<jboss-home>${wildfly.path}</jboss-home>
</configuration>
</plugin>
</plugins>
</build>
应用程序将部署为localhost:8080/myArtifactId-myVersion
,这是预期的,因为默认行为是使用WAR名称。但是,我希望更改上下文根,以便可以通过localhost:8080/
访问应用程序(即,我想要一个空的上下文根)。
方法一:更改POM配置
我可以在pom.xml
中更改finalName
构建设置,如下所示。
<build>
<finalName>newContextRoot</finalName>
</build>
这会正确地将url更新为localhost:8080/newContextRoot
。然后,我尝试将其更改为空白值。
<build>
<finalName></finalName>
</build>
然而,这会在我的IDE中导致Value must not be empty
错误,当我尝试构建它时失败,显示为Error assembling WAR: A zip file cannot include itself
。
方法二:更改插件配置
也许更好的解决方案是更改Maven WildFly插件本身的配置。在<configuration>
部分下,我可以添加以下内容。
<name>anotherContextRoot.war</name>
这会正确地将url更改为localhost:8080/anotherContextRoot
。因此,我再次尝试创建一个空白名称,如下所示。
<name>.war</name>
但是,这会产生IllegalArgumentException: Empty name segment is not allowed for module
。
问题
有没有人知道将上下文根设置为空的适当方法?先谢谢你。
2条答案
按热度按时间3htmauhk1#
我设法弄明白了这一点。您不需要执行任何操作,只需将
jboss-web.xml
文件添加到WEB-INF
目录,如下所示。这将设置上下文根并覆盖插件正在执行的操作。
希望这对其他人有帮助。
1qczuiv02#
如果您使用名称
ROOT.war
保存WAR并部署它,WildFly会将其配置为根应用程序。