gpt4 book ai didi

eclipse - 在 war 库中热部署资源

转载 作者:行者123 更新时间:2023-12-02 06:43:38 26 4
gpt4 key购买 nike

使用 Wildfly 8.2.0.Final、Windows 7、JBoss Developer Studio 8.0.2.GA。

我们正在尝试将我们的 war 分成多个模块。似乎最自然的方法是依靠 Web 片段 + JSF/Facelet 能力在 war/WEB-INF/lib jar 中查找资源。
问题在于,对 xhtml Facelet 模板和静态资源的更改不会即时应用,因为如果相同的内容位于 war 本身中,就会发生这种情况。

据我了解,这是因为:

  • 片段 jar 是通过 IDE 打包部署的,而不是分解;
  • VFS 在 tmp 目录中创建 jar 的副本,然后将其解压;
    VFS3 User Guide表示“只要有可能,JavaZipFileSystem 就会尝试使用 JarEntry 来支持文件系统操作。如果不可能,它将把 JarEntry 的副本写入临时目录”。我不明白这个“当不可能时”是什么意思,单步执行 org.wildfly.extension.undertow.deployment.WarStructureDeploymentProcessor 代码似乎总是会创建一个 jar 副本。
  • org.jboss.vfs.spi.JavaZipFileSystem 似乎试图查看 jar 的最后修改时间,但它查看的是副本,而不是原始版本;JBoss Developer Studio 无论如何都不会更改原始 jar 的最后修改时间,例如更新 xhtml 时。

问题。

  1. 有什么地方存在错误吗?虚拟FS?暗流?我不确定所描述的行为是否是有意为之。
  2. Wildfly 是否应该支持 war 库中的热部署资源? IE。合理吗?
  3. 如何使用 Wildfly 8.2.0.Final 实现此功能?
    1. 替换 Undertow 的 war 部署 ResourceManager,以某种方式修改 getResource?
    2. 对 VFS.mounts 做些什么?什么?
    3. 放弃这种方法。相反,将这些 war 子模块制作成耳级的 EJB,这样它们就会爆炸式部署。添加这些“EJB”作为 war 部署资源根,就像 WarStructureDeploymentProcessor 所做的那样。

最佳答案

最终在 JBIDE-20071 Allow deploying exploded jars to war/WEB-INF/lib 中解决了这个问题,这样 JBoss Tools 就会部署爆炸的 web 片段。 Web 片段被打包部署,只是因为之前 JBoss AS7 中存在错误 ( AS7-4704 )。

关于eclipse - 在 war 库中热部署资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28326523/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com