如何从EJB3读取webRoot目录中的文件?

时间:2014-03-27 22:06:28

标签: file-io glassfish ejb

我在Glassfish上部署了一个EmailSrvc无状态会话Bean(EJB3)。 bean需要读取存储在/emailTemplates/someTemplate.html中的电子邮件模板,处理模板并发送电子邮件。问题:

1)上面建议的这个网站目录是否为保留电子邮件模板的适当位置?

2)我如何引用该文件?我想避免直接文件系统路径,因为服务器可能是集群的。我以为我可以通过ServletContext获取webRoot文件夹,但我还没想出如何从bean中查找它。

由于

1 个答案:

答案 0 :(得分:0)

我想我可以将emailTemplates文件夹放在WEB-INF/classes下面,并获取我需要的文件的inputStream:

InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("emailTemplates/someTemplate.html");

不确定我喜欢在classes文件夹中使用模板,但它似乎不合适。希望其他人可以提出更好的解决方案吗?

相关问题