从Websphere上部署的EAR访问文件位置

时间:2015-02-27 20:00:16

标签: java-ee

我将我的代码部署为WAS7上的EAR。我想读取一个文件位置,该位置不断更新一组文件。我已经在解析那些文件集,以便在我的本地环境中进一步处理。但是,当我在服务器上部署EAR时,文件位置(我已将文件放在我的项目位置进行测试)没有被读取。

显然它提供了我的" FileNotFoundExcpetion"。我不确定应该如何提供文件位置?

如何在服务器上部署应用程序时,如何访问该文件位置,以及在我的代码中提供该文件位置的方法是什么? 该文件位置可以是任何远程文件位置。仅用于测试我已将这些文件导入到本地工作区。

2 个答案:

答案 0 :(得分:1)

一般来说:

1)如果您将文件包含在" src"在Eclipse J2EE项目中,这些文件将包含在.war中的WEB-INF下(在.ear中部署)。

2)要在运行时读取这些文件,您通常使用:

servletContext.getResourceAsStream("/WEB-INF/myfile");

3)或者,您可能需要致电getClass().getClassLoader().getResourceAsStream()

这是一个很好的例子:

How to read a properties file in a web application

答案 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;

如果需要,您还可以在部署后通过控制台更改该变量的值。