eclipse - 在 war 库中热部署资源

标签 eclipse jakarta-ee jboss wildfly wildfly-8

使用 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/

相关文章:

android - 默认选择为空的微调器

android - bin目录下有多个apk文件

java - 如何获取所有源代码文件并检查是否已以编程方式在Eclipse中对其进行了修改

java - 对象作为 <f :selectItems> 中的 itemValue

java - 以下技术获取 RequestContext 是否正确

jakarta-ee - 如何使用 Weld 注入(inject)不可序列化的类(如 java.util.ResourceBundle)

mysql - keycloak docker mysql连接链接失败

java - 野蝇 9 : Can't find hornetq-configuration. xml

android - 应用程序在 Eclipse 模拟器上运行良好,但在手机上运行错误 - FroYo

jsf - JBoss 部署中的类加载 as 7