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

时间:2011-07-25 21:08:41

标签: gwt rpc

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


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

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

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

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

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

或者RemoteServiceRelativePath中的任何内容