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



我的Web应用程序中有一些数据文件,我想读取。

如何从 EJB 访问它们?

我尝试了这样的事情,但没有用:

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

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

尝试:

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

更多详细信息,请参阅:用于从 Java 中的类路径加载资源的 URL

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

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

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

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

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

最新更新