我在 WebSphere 7 上运行的 Eclipse(实际上是 IBM RAD 7)中有一个 Java EE 5 项目。
工作区项目的布局如下:
webapp <-- produces a WAR file
webappEAR <-- produces the EAR file
webappEJB <-- holds the Service and DAO classes
webappJPA <-- holds the domain/entity classes
webappTests <-- holds the JUnit tests
在我的一个服务类中(在 webappEJB 项目中),我需要加载一个文本文件作为资源。
我将文本文件放在文件夹中:
webappEAR/emailTemplates/myEmailTemplate.txt
所以它出现在 EAR 文件中:
webappEAR.EAR
/emailTemplates/myEmailTemplate.txt
在我的服务类中,这是我加载它的方式:
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("emailTemplates/myEmailTemplate.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(input));
/* and so on */
问题input
总是空的——它找不到资源。
我尝试了一个前导斜杠("/emailTemplates/myEmailTemplate.txt"
),但这也不起作用。
任何想法我做错了什么?或者更好的方法来做到这一点?
谢谢!
抢