1

我的 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 文件。

4

2 回答 2

1

尝试:

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

更多详细信息:从 Java 中的类路径加载资源的 URL

于 2013-09-27T01:06:14.400 回答
1

经过一番试验,我终于让它工作了。问题是路径错误。正确的是:

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

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

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

不适合我,但感谢您的帮助。

于 2013-10-01T13:29:12.003 回答