gpt4 book ai didi

java - Jboss 7 getResourcesAsStream()

转载 作者:行者123 更新时间:2023-11-30 03:15:27 26 4
gpt4 key购买 nike

应用程序结构描述:带有ejb模块(.jar)、jboss-seam(.jar)和war模块(.war)的Ear应用程序。

我有一个用org.jboss.seam.annotations.Startup注释的StartupAction.class(seam组件)。在应用程序部署期间,我需要从 application.war 模块根 (application.war/pages/page.xhtml) 和 WEB-INF/classes ( application.war/WEB-INF/classes/file.properties)

  • Jboss 4.2Thread.currentThread().getContextClassLoader().getResourceAsStream("file.properties") 将从 application.war/WEB-INF/classes/file.properties 获取文件。

  • Jboss 7.1.1
    上面的代码不适用于 Jboss 7。

我知道类加载发生了变化,但我不知道如何进入 jboss 7 中的application.war

可以这样做吗?有这方面的例子吗?

提前致谢。

最佳答案

正如 @BalusC 所提到的,您将无法从打包在 EAR 中的任何其他模块(EJB 或其他模块)读取嵌入到 Web 模块中的属性文件。

事实上,这在 JBoss 4.x 中有效是因为它为甚至早期版本的 JBoss 提供了向后兼容性。 JBoss 4.x 中需要额外的配置才能使用符合规范的类加载。默认情况下,JBoss 7.x 和更新版本使用符合规范的类加载。

如果您的属性文件包含旨在在部署后可访问的外部配置,那么您可以考虑 How to put an external file in the classpath 中描述的方法。 。

但是,如果它实际上是静态数据,那么您应该将属性文件打包到 jar 模块中,并将其放置在 EAR 的 lib 目录中。

关于java - Jboss 7 getResourcesAsStream(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32760973/

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