首页 文章

GWT RPC“404 not found”错误。如何让 RPC 在您自己的 Apache 服务器上运行?

提问于
浏览
2

我实现的 RPC 在开发模式下工作正常。但是只要我将代码复制到真正的 apache 服务器中,RPC 就会停止工作! **如何配置 GWT 应用程序,以便 RPC 可以在 Apache 服务器上运行?**我在 RPC 上找到了 GWT 教程,但它没有多大用处.非常感谢有关 RPC 配置的其他链接!


我开发了一些 GWT 代码。我实现并开始了 RPC client-server 通信。当我说它正在工作时...我的意思是它在开发模式下运行良好。我可以点击它,它按预期与服务器交互。

然后,当我执行 GWT 编译并将 war 目录复制到我的 apache 服务器 htdocs 文件夹中时。我可以查看网站,但是当我点击应该启动 RPC 的按钮时,没有任何反应。我查看了 Firefox - >工具 - > Web 控制台,看到“未找到 NAMEOFRPC 404”。

这是我的 WEB-INF web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

  <!-- Servlets -->
  <servlet>
    <servlet-name>NameOfRpc</servlet-name>
    <servlet-class>com.company.nameOfModule.server.rpc.NameOfRpcImpl</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>NameOfRpc</servlet-name>
    <url-pattern>/nameOfModule</url-pattern>
  </servlet-mapping>

  <!-- Default page to serve -->
  <welcome-file-list>
    <welcome-file>NameOfModule.html</welcome-file>
  </welcome-file-list>

</web-app>

这是我得到的 firefox web-console 错误:

[16:50:58.792] POST http://SERVER/gwt/nameOfModule/nameOfModule/NameOfRpc [HTTP/1.1 404 Not Found 3065ms]

我将 war 文件夹复制到/SERVER/gwt,然后将其重命名为 nameOfModule。

我的 WEB-INF/web.xml 有什么问题吗?

2 回答

  • 2

    你需要的是一些运行 JVM 实例,运行一个 J2EE servlet 容器,它托管你的 servlet 代码。据我所知,Apache 只是一个 http 服务器,并且不会运行 java 代码或托管 servlet。我假设你的 wiki 只是一个由 apache 提供的 HTML 页面。

    Tomcat 只是一个选择。它是用于托管 java servlet 的标准 JVM contatiner 人员。它还能够提供 HTML 文件,因此如果您使用 tomcat,则可以停止使用 apache http 服务器。

    您的应用程序在开发模式下运行良好,因为 GWT 托管模式具有 in-built Jetty 服务器,这是一个与 tomcat 相当的轻量级 servlet 容器。像 tomcat 和 jetty 以及 jboss 这样的服务器实际上是读取你的 web.xml 并执行你在其中描述的内容。

  • 0

    您将在 web.xml 中想要以下内容:

    <url-pattern>/nameOfModule/RpcGetXml</url-pattern>
    

    或者 RemoteServiceRelativePath 中的任何内容

相关问题