从EJB访问存储在Web内容文件夹中的文件

时间:2013-09-26 21:55:34

标签: java-ee glassfish ejb webcontent

我的WebApplication中有一些数据文件,我想阅读。

如何从EJB访问它们?

我尝试了类似的东西,但它不起作用:

@Singleton
public class Server {

  public void loadData() {
    InputStream is =
      this.getClass().getClassLoader().
      getResourceAsStream("WebContent/WEB-INF/Data/Data.xml");
    //read from is...
  }

}

或者有没有更好的方法来处理只读数据文件?我不想使用数据库,因为我从不必写入这些文件,而且我可以非常轻松地解析大型XML文件。

2 个答案:

答案 0 :(得分:1)

尝试:

public void loadData() {
  InputStream is = this.getClass().getClassLoader().getResourceAsStream("classpath:Data/Data.xml");
  //read from is...
}

此处有更多详情:URL to load resources from the classpath in Java

答案 1 :(得分:1)

经过一些实验,我终于开始工作了。 问题是错误的道路。对是:

InputStream is = this.getClass().getClassLoader().getResourceAsStream("../Data/Data.xml");

(我不知道为什么)......

InputStream is = this.getClass().getClassLoader().getResourceAsStream("classpath:Data/Data.xml");

对我不起作用,但感谢您的帮助。