如何将 root(/) 上下文中的 war 文件部署到 Wildfly 9.0.1 版
Posted
技术标签:
【中文标题】如何将 root(/) 上下文中的 war 文件部署到 Wildfly 9.0.1 版【英文标题】:How to deploy war file in root(/) context to Wildfly ver 9.0.1 【发布时间】:2015-11-21 09:28:48 【问题描述】:我是 Wildfly 的新手,直到现在我都在使用 tomcat 来部署我的应用程序。现在只是为了添加 Wildfly 的功能,我们要继续进行此操作。 我正在使用 Windows 操作系统,我已经完成了 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
【问题讨论】:
请粘贴部署的server.log 先生,我翻阅了一本电子书,里面还有一些 bat 文件要执行。如果你能帮我解决这个问题,那将是一个 grd 帮助,因为你在 jboss 上做了很多工作。任何邮件 ID 先生 【参考方案1】:这是为那些在项目中使用 Maven 的人提供的解决方案。要让 Wildfly 在/
下托管您的应用程序,您必须将包含该应用程序的war 文件命名为“ROOT.war”。要自动执行此操作,请将 pom.xml
中的默认 war 文件名更改为 ROOT,如下所示:
...
</dependencies>
<build>
<!-- <finalName>$project.artifactId</finalName> -->
<finalName>ROOT</finalName>
这样,当使用 Maven 将应用程序部署到 Wildfly 时,文件会自动托管在根目录中。
【讨论】:
【参考方案2】:欢迎页面底部有注释,
要替换此页面,请在您的服务器中将“enable-welcome-root”设置为 false 使用 / 作为其上下文路径配置和部署您自己的战争。
请确认您是否将 enable-welcome-root 设置为 false。
【讨论】:
先生,我使用的是没有此属性的 9.0.1 版本,我在某处读到不需要这样做,只需在您的应用程序中添加 jboss-web.xml 和上下文路径“/” .【参考方案3】:在创建war文件之前,必须在WEB-INF
文件夹中添加两个文件
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>
空bean.xml
【讨论】:
对我来说仍然一无所获,我有一个简单的 helloWorld servlet,可以在 tomcat 中工作,但不能在 wildfly 9 中使用【参考方案4】:如果你的网络模块在耳朵里,你可以使用以下语法
<host name="default-host" alias="localhost" default-web-module="myApp.ear.myWebApp.war">
【讨论】:
【参考方案5】:对于我的 wildfly 9.0.1 部署,我们执行了以下两个操作,并且成功了。
jboss-web.xml 由其他专家如上所述。
在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>
【讨论】:
【参考方案6】:要使用 Wildfly 覆盖欢迎 webapp,您需要在 webapp 的 WEB-INF
中创建一个 jboss-web.xml
并使用以下内容:
<jboss-web>
<context-root>/</context-root>
</jboss-web>
但是如果您尝试访问根目录(例如http://localhost:8080/),您仍然会看到默认的欢迎内容。要删除它,您只需将 Wildfly 目录中的目录welcome-content
重命名即可。
【讨论】:
以上是关于如何将 root(/) 上下文中的 war 文件部署到 Wildfly 9.0.1 版的主要内容,如果未能解决你的问题,请参考以下文章
在外部 tomcat 中定义 Spring Boot 应用程序的上下文路径
使用spring boot loader WarLauncher时如何在war文件之外加载属性文件?