热重新部署不适用于 Wildfly 10。1.Final

Hot redeployment not working on Wildfly 10.1.Final

我有一个多 Maven war 项目,我正试图在 Wildfly 中部署它。我在 eclipse 中使用 JBoss 工具插件进行部署(增量、完整发布),我可以看到正在部署的文件,并在 wildfly 的部署目录中更新。我的问题是浏览器中呈现的 xhtml 文件未更新。我尝试了什么:

1.) 清除浏览器的缓存 - 无效 2.) 打开私人浏览器 window - 无效 3.) 在 wildfly

中添加了一个无缓存过滤器
<server name="default-server">
    <host name="default-host" alias="localhost">
        <filter-ref name="cache-control" predicate="path-suffix['.html'] or path-suffix['.jsf'] or path-suffix['.xhtml'] or path-suffix['.css'] or path-suffix['.js']"/>
    </host>
</server>
<filters>
    <response-header name="cache-control" header-name="Cache-Control" header-value="no-cache"/>
</filters>

似乎 Wildfly 有一些深层缓存,因为当您 运行 增量发布然后重新启动服务器时,更改会反映出来。

有什么想法吗?

单机版:

当已经连接到 CLI 时:

deploy /path/to/application.war

在单个命令中连接和部署:

jboss-cli.sh --connect command="deploy /path/to/application.war"

在一条命令中连接、部署和验证:

jboss-cli.sh --connect --user=admin --password=redhat command="deploy /path/to/application.war"

对于域:

正在部署到所有组:

deploy /path/to/application.war --all-server-groups

仅部署到指定组:

deploy /path/to/application.war --server-groups=server_group_1,server_group_2

这些域命令也可以像上面一样用于连接and/or在单个命令中进行身份验证。

用户无法在域模式下将应用程序部署到特定 server/servers。 application.war 应该是存档的应用程序(不是分解的 war)。

通过在 web.xml 中添加参数 javax.faces.FACELETS_REFRESH_PERIOD 解决了问题。

<context-param>
    <param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>
    <param-value>2</param-value> <!-- Should be -1 for production. -->
</context-param>