如何在wildfly服务器中以编程方式热重载静态资源(如xhtml)以获取爆炸战争中存在的库

Posted

技术标签:

【中文标题】如何在wildfly服务器中以编程方式热重载静态资源(如xhtml)以获取爆炸战争中存在的库【英文标题】:How to programmatically hot reload static resources like xhtml in wildfly server for libs present in exploded war 【发布时间】:2019-08-17 16:55:50 【问题描述】:

我在wildfly 10 中基于JSF 展开了war 文件。我有多个带有Xhtml 和CDI bean 的jar 文件,它们存在于exploded war 的lib 中。 如果我更改了与 lib 中存在的 jar 相关的源中存在的 XHTML 文件中的内容,则需要重新加载内容,而无需更新 lib 文件夹中的 jar 文件并重新部署 war 文件。

如何实现这个功能?这已经在 netbeans / eclipse IDE 中作为“复制静态资源”提供。但这不适用于罐子。

环境: 服务器:Wildfly 10 项目类型:JSF maven

【问题讨论】:

【参考方案1】:

我认为问题是你更新的资源被打包在一个位于爆炸战争WEB-INF/lib中的jar中,因此整个jar需要在WEB-INF/lib中替换,wildfly需要重新加载这个jar .

只有爆炸战争中的资源可以更新,即用修改后的资源替换旧资源。这是很多人都面临的网络片段的老问题。我们已经解决了这个问题,通过打包 war 实现 web 片段,并在 main war 中使用覆盖,它将所有 web 片段内容复制到该 main war 项目,它们由唯一的命名空间分隔。

我不知道wildfly是否可以配置重新加载库jar,如果你实现在爆炸战争的WEB-INF/lib中重新部署一个jar。

查看以下讨论也许您会找到更多帮助:

Hot redeploy files in web fragment project in IntelliJ

https://developer.jboss.org/thread/252106

How to force jboss to load classes from jars in webapp's lib

https://www.protechtraining.com/bookshelf/jboss_admin_tutorial/class_loading?ncr=1

https://access.redhat.com/solutions/334963

【讨论】:

以上是关于如何在wildfly服务器中以编程方式热重载静态资源(如xhtml)以获取爆炸战争中存在的库的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中以编程方式在编译时创建静态数组

如何在 Android 中以编程方式隐藏 AsyncTask 中的 ProgressBar?

有没有办法在 Ktor 中热重载静态文件?

Wildfly Maven插件+热部署

Eclipse Kepler 和 JBoss Wildfly 热部署

以编程方式在 Wildfly/Undertow 中创建虚拟主机