我将我的代码部署为WAS7上的EAR。我想读取一个文件位置,该位置不断更新一组文件。我已经在解析那些文件集,以便在我的本地环境中进一步处理。但是,当我在服务器上部署EAR时,文件位置(我已将文件放在我的项目位置进行测试)没有被读取。
显然它提供了我的" FileNotFoundExcpetion"。我不确定应该如何提供文件位置?
如何在服务器上部署应用程序时,如何访问该文件位置,以及在我的代码中提供该文件位置的方法是什么? 该文件位置可以是任何远程文件位置。仅用于测试我已将这些文件导入到本地工作区。
答案 0 :(得分:1)
一般来说:
1)如果您将文件包含在" src"在Eclipse J2EE项目中,这些文件将包含在.war中的WEB-INF下(在.ear中部署)。
2)要在运行时读取这些文件,您通常使用:
servletContext.getResourceAsStream("/WEB-INF/myfile");
3)或者,您可能需要致电getClass().getClassLoader().getResourceAsStream()
这是一个很好的例子:
答案 1 :(得分:1)
如果您需要任何文件位置,我建议使用web.xml
中的环境变量将其传递给应用程序,如下所示:
<env-entry>
<env-entry-name>filePath</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/path/to/file.txt</env-entry-value>
</env-entry>
然后使用
在您的代码中访问它@Resource(name="filePath", type=String.class)
private String filePath;
如果需要,您还可以在部署后通过控制台更改该变量的值。