【问题标题】:gwt servlet getRessourceAsStream always returns null [duplicate]gwt servlet getRessourceAsStream 始终返回 null [重复]
【发布时间】:2016-03-31 11:55:03
【问题描述】:

我可以轻松地在 servlet 中加载文本文件:

String lFileName = mServletContext.getRealPath(mFile);
InputStream lInputStream = mServletContext.getResourceAsStream(lFileName);
InputStream lInputStream2 = mServletContext.getResourceAsStream(mFile);

InputStream's 都是 null。我完全不知道为什么。

mFile 的值为"file.txt"lFile 的值为"C:\development\workspace\MyGwtApp\war\file.txt"

如果我使用资源管理器导航到该目录,则文件 file.txt 就在其中...!

我使用super dev mode 测试我的gwt 应用程序。 编译gwt应用运行没有问题。

你发现问题了吗?

【问题讨论】:

  • 文件权限可能有问题,允许您在资源管理器中访问文件但不允许您的网络服务器访问它?
  • 我的 Eclipse 以管理员权限运行
  • 文件路径必须与您的 servlet 上下文相关,即“/file.txt”。

标签: java servlets gwt


【解决方案1】:

getResourceAsStream 定义

查找具有给定名称的资源。搜索与给定类关联的资源的规则由该类的定义类加载器实现。这个方法委托给这个对象的类加载器。

这意味着如果 mFile 存在于您的类路径中,例如 WEB-INF/classes 下,您可以读取它。因此,将您的文件放在您的 java 类所在的 src 目录中,并查看文件是否位于类目录中,然后使用其名称将其作为资源获取。示例:文件名 = "file.txt"

【讨论】:

  • 我们有一个不赞成的人,这是一个好兆头,有人回应:)
  • 几乎正确。不必将文件放在类目录中。但就我而言,有必要将其放在 WEB-INF 目录中。我把它放在war目录下。不过你给了我一个很好的提示。
猜你喜欢
  • 2021-03-05
  • 2014-06-21
  • 2021-01-27
  • 2017-01-05
  • 1970-01-01
  • 2016-05-31
  • 2015-08-15
  • 2012-03-18
  • 2016-11-04
相关资源
最近更新 更多