java - 在独立部署或在ear中部署的war文件中查找资源(.txt文件)

标签 java classloader war

我有一个war文件打包在ear中并部署。结构如下:

EAR
-WAR
--input.txt
--META-INF
--WEB-INF
---classes
(and so on)

我正在尝试从 WEB-INF/classes 文件夹中的一个类(例如 abc.xyz.Myclass)读取 input.txt 。这是我尝试过的:

this.getClass().getClassLoader().getResourceAsStream("../../input.txt");

Thread.currentThread().getContextClassLoader().getResourceAsStream("../../input.txt");

我通过附加调试器尝试了多个路径,例如“../input.txt”或“/input.txt”或只是“input.txt”。但每次我得到 NULL 作为返回值(意味着它无法找到该文件)。

无论 war 是独立部署还是打包在耳朵中,在 war 中访问该文件的正确方法是什么?请帮忙。

最佳答案

使用getResource()时,资源需要位于类路径上。因此,您需要将 input.txt 放在 classes 目录下的某个位置。

关于java - 在独立部署或在ear中部署的war文件中查找资源(.txt文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29819735/

相关文章:

java - 按下按钮时发送 SSH 命令

java - 让 Class.getResource() 使用当前 ThreadContext 类加载器的最简单方法

java - 发现它指向什么继承类

java - 使用Java拦截元素点击

java - 如何配置/创建自定义类路径,与jetty中许多Web应用程序中的少数几个一样常见

java - jca 资源适配器的 Wildfly 类加载问题

java - 没有名为 EntityManager 的持久性提供程序

java - 访问网页时出现问题(在 Wildfly 上上传)

java - Tomcat 配置 - 多台主机

java - Retrofit2 如何获取重定向网址 @HEAD ("/")