一尘不染

GWT Tomcat问题到RPC调用

tomcat

当我将War文件部署到TOMCAT(tomcat / webapps / ROOT / war)时,GWT RPC调用似乎不起作用。

它给我一个错误:

所请求的资源(/ war / myproject / call)不可用。

如果我更改目录结构,然后直接部署war内容(而不是war目录本身),例如(tomcat / webapps / ROOT /
project.html,project.css,project等…),那么它将起作用。

有人可以解释一下发生了什么吗?

我认为可能存在以下问题:

<servlet>
<servlet-name>callServlet</servlet-name>
<servlet-class>com.myproject.server.dao.Call</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>callServlet</servlet-name>
<url-pattern>/myproject/call</url-pattern>
</servlet-mapping>

阅读 256

收藏
2020-06-16

共1个答案

一尘不染

问题是,单个Tomcat服务器可以部署多个应用程序,每个应用程序都在其所谓的 上下文中
。应用程序部署在该webapps文件夹中,并且每个文件夹都映射到一个 上下文 ,而该ROOT文件夹是默认上下文(无上下文)。

要访问Tomcat上的应用程序,请在URL后面指定 上下文
。例如,如果您Testwebapps/Test文件夹中有一个应用程序(上下文),则可以这样访问它:

http://localhost:8080/Test

但是ROOT文件夹中的应用程序没有上下文,只需访问即可访问localhost:8080。这就是你的情况。Tomcat在ROOT文件夹中直接寻找您的应用程序,但文件夹中有您的应用程序ROOT/war。换句话说,RPC调用期望该myproject文件夹位于该ROOT文件夹下而不是该ROOT/war文件夹下。这就是为什么它不起作用。

如果您仍然希望将war文件夹包含在ROOT文件夹中,则必须将更url-pattern改为/war/myProject/call

2020-06-16