我的问题是一个你可能认为很常见的问题,但到目前为止我还没有找到解决方案。
在 Tomcat 5.5 下构建 Java Web 应用程序(尽管要求它可以部署在任何地方,例如在 WebLogic 环境下,因此需要将资源作为流加载)。良好的实践表明资源文件放置在WEB-INF/类并使用 ClassLoader 加载getResourceAsStream()方法。当您知道要加载的资源的名称时,一切都很好。
我的问题是我需要加载位于以下子目录中的所有内容(包括递归地在非空子目录中)classes.
因此,例如,如果我有以下内容WEB-INF/类:
文件夹X/文件夹Y
文件夹/文件夹/文件.properties
文件夹/文件.属性
我需要加载 fileA.properties 和 fileB.properties 类,但在应用程序启动之前实际上并不知道它们的名称(即我需要能够从 WEB-INF/classes 下的任何目录任意加载资源)。
最优雅的方法是什么?我可以询问什么对象来查找我需要的信息(每个所需资源的资源路径)?非 servlet 特定的解决方案将是最好的(如果可能的话,将其全部保留在类加载框架内)。
提前致谢!
据我所知,没有这样的能力,因为类加载器只尝试加载它所要求的东西。它不会预取类路径上的所有项目,或将它们视为目录结构。
我解决问题的方法是在构建时在所有相关资源的文本文件中创建一个目录列表,并将其包含在战争中,然后以这种方式进行操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)