调用 RPC 时出错 - GWT,404 服务器响应状态为 404(未找到)

Posted

技术标签:

【中文标题】调用 RPC 时出错 - GWT,404 服务器响应状态为 404(未找到)【英文标题】:Error in Call RPC - GWT , 404 the server responded with a status of 404 (Not Found) 【发布时间】:2014-04-10 01:00:08 【问题描述】:

我在服务器上部署我的 GWT 应用程序,在开发模式下,使用 eclipse。 RPC 调用工作正常,但在我部署到 tomcat 服务器后,我无法进行调用。 这是浏览器的控制台显示的内容:

加载资源失败:服务器响应状态为 404 (未找到)http://greenti.platon.com.br/war2/softheart/adminService 加载资源失败:服务器响应状态为 404 (未找到)

这是我的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  version="2.5"
  xmlns="http://java.sun.com/xml/ns/javaee">

  <!-- Default page to serve -->   
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>   
  </welcome-file-list>
<servlet>
  <servlet-name>adminService</servlet-name>
  <servlet-class>greenti.server.service.AdminServiceImpl</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>adminService</servlet-name>
  <url-pattern>/softheart/adminService</url-pattern>
</servlet-mapping>
</web-app>

我的班级Service

@RemoteServiceRelativePath("adminService")
public interface AdminService extends RemoteService
  ...

我的.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--
  When updating your version of GWT, you should also update this DTD reference,
  so that your app can take advantage of the latest GWT module capabilities.
-->
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.5.1//EN"
  "http://google-web-toolkit.googlecode.com/svn/tags/2.5.1/distro-source/core/src/gwt-module.dtd">
<module rename-to='softheart'>
  <!-- Inherit the core Web Toolkit stuff. -->
  <inherits name='com.google.gwt.user.User'/>

  <!-- Inherit the default GWT style sheet.  You can change       -->
  <!-- the theme of your GWT application by uncommenting          -->
  <!-- any one of the following lines.                            -->

  <inherits name='com.google.gwt.user.theme.clean.Clean'/>
  <!-- <inherits name='com.google.gwt.user.theme.standard.Standard'/> -->
  <!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
  <!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/>     -->

  <!-- Other module inherits                                      -->

  <!-- Specify the app entry point class.                         -->
  <entry-point class='greenti.client.view.PanelMain'/>

  <!-- Specify the paths for translatable code                    -->
  <source path='client'/>
  <source path='shared'/>

</module>

任何帮助将不胜感激

【问题讨论】:

【参考方案1】:

试试:

http://greenti.platon.com.br/softheart/adminService

我不确定你为什么在路径中使用 /war2/。

【讨论】:

嗨@Andrei,谢谢!实际上我的war2是我解压缩的服务器上的一个目录。 war 文件,其中包含我的 war 文件夹中的所有内容。所以要访问应用程序,我的 index.html,我需要将目录放在 url 网址 http://greenti.platon.com.br/softheart/adminService 返回 404 未找到。 您确定您使用的是 Tomcat 而不是 Apache 服务器吗? 是的,tomcat不需要对GWT项目进行特殊配置吗?我其实是租用的服务器,没有权限,只是ftp发布应用。我在tomcat localhost中运行,使用eclipse,并且工作得很好,但是在这个外部服务器中不起作用 默认情况下,Eclipse 中的 GWT 在 Jetty 中运行,而不是在 Tomcat 中。【参考方案2】:

正如 Andrei 所建议的,不要在您的网址中使用 war2。

或者,如果您想使用相同的 url,您可以将 web.xml 的 servelt-mapping 中的 url-pattern 更改为 /war2/softheart/adminService

【讨论】:

如果我在war中打开我的modeulo的目录MymoduleName,我可以看到我的rpc吗?

以上是关于调用 RPC 时出错 - GWT,404 服务器响应状态为 404(未找到)的主要内容,如果未能解决你的问题,请参考以下文章

RPC 上的 GWT 404 错误

GWT Servlet 错误 com.google.gwt.user.client.rpc .StatusCodeException: Tomcat 服务器上的 404

GWT RPC 上的错误 404

GWT RPC“未找到 404”错误。如何让 RPC 在您自己的 Apache 服务器上工作?

状态码异常 (com.google.gwt.user.client.rpc.StatusCodeException: 404 <html>)

GWT RPC 失败调用