【问题标题】:RPC/Servlet not working when deployed in Tomcat as ROOT在 Tomcat 中作为 ROOT 部署时 RPC/Servlet 不起作用
【发布时间】:2011-12-08 01:44:03
【问题描述】:

我有一个已在 Tomcat 中部署的 GWT 应用程序。当我像这样将它部署在 webapps 文件夹中时:

webapps/mygwtapp

并从浏览器访问它,http://localhost:8080/mygwtapp 服务器端 RPC/Servlet 工作。

但是,当我将 mygwtapp 文件夹更改为 ROOT 文件夹时,RPC/Servlet 停止工作。

一个 servlet 配置,这在应用未部署为 ROOT 时有效:

  <servlet-mapping>
    <servlet-name>greetServlet</servlet-name>
    <url-pattern>/mygwtapp/greet</url-pattern>
  </servlet-mapping>

但是,当部署为 ROOT 时,它不起作用,即使我以这种方式更改 url 模式:

<url-pattern>/greet</url-pattern>

可能是什么问题?

【问题讨论】:

  • 请解释具体是什么不起作用。如果可能,提供错误消息和/或堆栈跟踪。
  • RPC 失败,因为我认为 servlet url-pattern 映射不正确。
  • 但是,当我将应用程序从 ROOT 传输到 webapps 文件夹中的 mygwtapp 时,它就可以正常工作(即,如果 url-pattern 是这样的:/mygwtapp/greet
  • 顺便说一句,在客户端服务中有这个注释:@RemoteServiceRelativePath("greet"),这可能是问题吗?

标签: gwt tomcat servlets


【解决方案1】:

即使使用 ROOT 路径仍然可以是 '/mygwtapp/greet'

模式是[context] / [project name] / [servlet],所以在这种使用ROOT的情况下是/ + mygwtapp + 问候

1)检查页面上java脚本的路径,应该是...

<script type="text/javascript" language="javascript" src="mygwtapp/mygwtapp.nocache.js"></script>

我会使用跟踪工具来查看您在 javascript、Firefox/Firebird、Chrome/Developer Tools 或 IE/HttpWatch 中获得的结果是否良好。你应该得到一个 200,如果不是这个路径就是问题所在。

2)检查你在ROOT文件夹中的文件夹布局,你应该有以下内容

ROOT
 |->mygwtapp (your mygwtapp.nocache.js should be here)
 |->WEB-INF

3) 检查 web.xml 路径,应该是 /mygwtapp/greet 并且你的 @RemoteServiceRelativePath 应该是“greet”

希望对您有所帮助。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-10-31
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-21
  • 1970-01-01
相关资源
最近更新 更多