GWT - 如何读取服务器上的(文本)文件(或:如何在 RemoteServiceServlet 中获取 servletContext)
Posted
技术标签:
【中文标题】GWT - 如何读取服务器上的(文本)文件(或:如何在 RemoteServiceServlet 中获取 servletContext)【英文标题】:GWT - How to read a (text)file on the server (or: how to get the servletContext in RemoteServiceServlet) 【发布时间】:2015-03-04 15:26:56 【问题描述】:对于我的 GWT/GAE 应用程序,我有一个非常大的文本文件,我想以正常方式在 servlet 上读取它(例如 Reader in = new InputStreamReader (VideoBroadcastServiceImpl.class.getResourceAsStream("com/myapp/resources/textfile")
)
就像你在本地机器上做的那样。
问题是我在这一行得到了 NullPointerException。
我已经阅读了一种更复杂的方法来读取存在于 GWT 项目中的 WEB-INF 文件夹中的文件的提示,在该项目中我需要 servletContext。一旦有了 servletContext,我就可以询问文件存在的真实路径。这种方式的问题是我需要自己实现getServletContext()
方法,这在HTTPServlet 中很容易,但在RemoteServiceServlet(我也使用的用于RPC 调用的GWT 标准servlet)中却不是。
是否有另一种简单的解决方案来读取服务器上的文件,或者你能给我一个建议,我如何在 RemoteServiceServlet 中获取 servletContext?
非常感谢您!
【问题讨论】:
【参考方案1】:RemoteServiceServlet
是HttpServlet
,所以它有一个getServletContext()
方法。
(您也可以分别使用getThreadLocalRequest()
和getThreadLocalResponse()
获得HttpServletRequest
和HttpServletResponse
)
【讨论】:
好的,我知道为什么它不起作用了。当我试图在 servlet 的构造函数中获取 servletContext 时,我总是遇到异常。显然 servletContext 只能在 servlet 的方法中访问。我想在构造函数中读取文本文件(以实例化一个列表),因为我只需要在用户访问我的网站时创建一次列表。感谢您的帮助! 使用servlet的init
方法怎么样?以上是关于GWT - 如何读取服务器上的(文本)文件(或:如何在 RemoteServiceServlet 中获取 servletContext)的主要内容,如果未能解决你的问题,请参考以下文章