【问题标题】:Deploy GWT to Tomcat (servlet not running)将 GWT 部署到 Tomcat(servlet 未运行)
【发布时间】:2011-06-30 17:30:30
【问题描述】:

将 GWT 应用程序部署到 Tomcat 的正确方法是什么?我用服务器端代码(servlet)制作了一个 GWT 应用程序。它在托管模式下工作,但仅当我将 WAR 文件夹(编译后)复制到 Tomcat webapp 目录并正确重命名 war 文件夹时。

我的 GWT 应用程序 servlet 位于 URI /mygwtapp 中,因此我重命名了文件夹 mygwtapp。应用程序正确加载,但出现 servlet 不运行的问题,即 /mygwtapp/servlet 不运行。

服务器端代码所需的所有库都在 WEB-INF/lib 文件夹中。这可能是什么原因?

谢谢。

【问题讨论】:

  • tomcat 日志说什么?另外,servlet 究竟做了什么?

标签: gwt tomcat servlets


【解决方案1】:

默认情况下,Tomcat 从上下文路径“/mygwtapp”提供一个名为“mygwtapp”的应用程序。 (而 GWT 内置的 jetty 从上下文路径 '/' 为其提供服务。)

您的 servlet 路径通常是“/mygwtapp/*”。这意味着,结合上下文路径,您的 servlet 现在可以从“/mygwtapp/mygwtapp/*”访问。 (试试看:只需在浏览器中输入完整的 URL - Servlet 通常会抱怨缺少某些内容,或者它不支持 GET,但您现在肯定会知道它在哪里。)

所以你有两个选择:

  1. 告诉客户端调用 '/mygwtapp/mygwtapp/*' 处的 servlet(我认为,这在使用 @RemoteServiceRelativePath 注释时已经自动处理)
  2. 调整Tomcat中web应用的Context路径,如http://tomcat.apache.org/tomcat-6.0-doc/config/context.html中解释

【讨论】:

    【解决方案2】:

    另一种选择是使用 GWT.getModuleBaseURL() 然后在您的客户端代码中附加 servlet 名称。这将使其无需任何特殊配置即可在 jetty 或 Tomcat 上运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-19
      • 1970-01-01
      • 1970-01-01
      • 2015-05-12
      • 2011-09-06
      • 1970-01-01
      相关资源
      最近更新 更多