如何将 root(/) 上下文中的 war 文件部署到 Wildfly ver 9.0.1

How to deploy war file in root(/) context to Wildfly ver 9.0.1

我是 Wildfly 的新手,直到现在我一直在 tomcat 部署我的应用程序。现在只是为了添加 Wildfly 的功能,我们想继续这个。 我正在使用 Windows Os,我已经完成了 wildfly 的基本实现以启动服务等,但无法部署 ROOT.war 代替欢迎页面。我已经研究并浏览了很多链接,我在我的项目 WEB-INF 文件夹中添加了 jboss-web.xml,并在我进入链接时使用以下设置。 但是我仍然无法在独立部署中部署 ROOT.war。每次都失败。不明白我做错了什么。

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web xmlns="http://www.jboss.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
        http://www.jboss.com/xml/ns/javaee
        http://www.jboss.org/j2ee/schema/jboss-web_5_1.xsd">
    <context-root>/</context-root>
</jboss-web>`

我已经创建了管理员用户,但是为了部署我只使用了 wildfly 用户设置。为此,我还取消了 bin/init.d wildfly.conf fly 中的字段注释。 但是完全没有意识到错误。

注意: 我们也在 linux 机器上尝试过,但是 ROOT.war 也没有部署到那里。used

欢迎页面底部有注释,

To replace this page set "enable-welcome-root" to false in your server configuration and deploy your own war with / as its context path.

请确认您是否将 enable-welcome-root 设置为 false。

在创建 war 文件之前,必须在 WEB-INF 文件夹中添加两个文件

  1. jboss-web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <jboss-web xmlns="http://www.jboss.com/xml/ns/javaee"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="
            http://www.jboss.com/xml/ns/javaee
            http://www.jboss.org/j2ee/schema/jboss-web_5_1.xsd">
        <context-root>/</context-root>
    </jboss-web>
    
  2. bean.xml

这是为那些在他们的项目中使用 Maven 的人提供的解决方案。要让 Wildfly 在 / 下托管您的应用程序,您必须将包含该应用程序的 war 文件命名为“ROOT.war”。要自动执行此操作,请将 pom.xml 中的默认 war 文件名更改为 ROOT,如下所示:

...
</dependencies>
<build>
    <!-- <finalName>${project.artifactId}</finalName> -->
    <finalName>ROOT</finalName>

这样,当使用 Maven 将应用程序部署到 Wildfly 时,文件会自动托管在根目录中。

要使用 Wildfly 覆盖欢迎网络应用,您需要在网络应用的 WEB-INF 中创建一个 jboss-web.xml,内容如下:

<jboss-web>
    <context-root>/</context-root>
</jboss-web>

但是如果您尝试访问根目录(例如 http://localhost:8080/),您仍然会看到默认的欢迎内容。要删除它,你只需要在Wildfly目录中重命名目录welcome-content

对于我的 wildfly 9.0.1 部署,我们执行了以下两个操作并且成功了。

  1. jboss-web.xml 如上其他专家所述。

  2. 在standalone.xml、

    <host name="default-host" alias="localhost, myAppDomain.com" default-web-module="myApp.war">
        <location name="/" handler="welcome-content"/>
        <filter-ref name="server-header"/>
        <filter-ref name="x-powered-by-header"/>
    </host>
    

如果你的网络模块在耳朵里,你可以使用以下语法

<host name="default-host" alias="localhost" default-web-module="myApp.ear.myWebApp.war">