【问题标题】:File path gwt app hosted mode文件路径 gwt app 托管模式
【发布时间】:2011-09-26 12:53:51
【问题描述】:

我想知道如何获取文件的路径以在托管模式下访问它。我的应用程序正在使用 servlet 读取一些文件。最初文件位于文件夹“war”(例如“war/data/file1.txt”)下,在开发中一切正常,servlet 读取文件并将数据发送到客户端。但是,当我在 Tomcat 中部署应用程序时遇到了问题。

我复制了文件夹war的内容,并将它放在“webapps”目录下的一个文件夹中(在Tomcat中)。在开发模式下,我使用路径“data/file1.txt”访问数据文件,但这在托管模式下不起作用,因为我发现使用该路径时,servlet 在“bin”中查找文件Tomcat安装目录的文件夹,而不是应用程序的文件夹。

所以,我想知道如何以编程方式找到访问文件的正确路径,并避免在将应用程序部署到 Tomcat 或任何其他服务器时出现问题。

【问题讨论】:

    标签: gwt tomcat servlets path


    【解决方案1】:

    使用ServletContext.getRealPath()。您可以从Servlet.getServletConfig().getServletContext() 获取 ServletContext 的实例。

    您看到它在开发模式下工作但在 Tomcat 中没有的原因是该路径通常是相对于工作目录的。如果您在 Web 应用程序目录中启动 Tomcat 或修改 Tomcat 快捷方式以在您的 Web 应用程序中有工作目录,您可能也可以使 Tomcat 工作。但你绝对不应该依赖它。

    【讨论】:

    • 当谈到 GWT 时,似乎获取 servlet 上下文的好方法是调用 servlet.getServletContext(),其中 servlet 是您的服务的 servlet,应该扩展 RemoteServiceServlet 类。无论如何,您的解决方案也适用于我的 GWT 应用程序。谢谢。
    【解决方案2】:

    看看 GWT.isProdMode()。如果在生产模式下运行,则返回 true,如果在开发模式下,则返回 false。您可以通过将其放在 if 语句中来选择适当的路径

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      • 2011-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多