WildFly Maven插件-设置空白上下文根

e5nqia27  于 2022-10-26  发布在  Maven
关注(0)|答案(2)|浏览(184)

我使用的是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

问题

有没有人知道将上下文根设置为空的适当方法?先谢谢你。

3htmauhk

3htmauhk1#

我设法弄明白了这一点。您不需要执行任何操作,只需将jboss-web.xml文件添加到WEB-INF目录,如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
    <context-root>/</context-root>
    <default-encoding>UTF-8</default-encoding>
</jboss-web>

这将设置上下文根并覆盖插件正在执行的操作。
希望这对其他人有帮助。

1qczuiv0

1qczuiv02#

如果您使用名称ROOT.war保存WAR并部署它,WildFly会将其配置为根应用程序。

相关问题