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

发布于 2024-11-26 06:27:56 字数 1549 浏览 0 评论 0原文

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


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

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

这是我的 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 控制台错误:

[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 有什么问题吗?

The RPC I implemented works fine in dev mode. But as soon as I copy the code into a real apache server the RPC stops working! How do you configure your GWT application so that the RPC will work on the apache server? I have found the GWT tutorial on RPC but it is not very helpful. Other links about RPC configuration would be very much appreciated!


I developed some GWT code. I implemented and got working an RPC client-server communication. When I say it is working... I mean that it works great in development mode. I can click and it interacts with the server as expected.

Then when I do a GWT compile and copy the war directory into my apache server htdocs folder. I can view the website but when I click on the button that is supposed to initiate an RPC nothing happens. I check the Firefox-->tools-->web console and see "NAMEOFRPC 404 not found".

Here is my 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>

Here is the firefox web-console error I get:

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

I copy the war folder into /SERVER/gwt and then rename it to nameOfModule.

Is there anything wrong with my WEB-INF/web.xml?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

内心激荡 2024-12-03 06:27:56

您需要的是一些正在运行的 JVM 实例,运行一个 J2EE servlet 容器,该容器托管您的 servlet 代码。据我了解,Apache 只是一个 http 服务器,并且不运行开箱即用的 java 代码或主机 servlet。我假设您的 wiki 只是由 apache 提供的一组 HTML 页面。

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

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

What you need is some running JVM instance, running a J2EE servlet container, which is hosting your servlet code. Apache, as I understand is simply a http server, and does not run java code, or host servlets, out of the box. I'm assuming your wiki is simply a clump of HTML pages served by apache.

Tomcat is merely an option. It is the standard JVM contatiner folks use for hosting java servlets. It is also capable of serving HTML files, so you can stop using apache http server if you use tomcat.

Your app worked well in development mode, because GWT Hosted Mode has in-built Jetty server, which is a lightweight servlet container comparable to tomcat. Servers like tomcat and jetty and jboss are the ones which actually read your web.xml and do what you have described in it.

厌倦 2024-12-03 06:27:56

您需要在 web.xml 中包含以下内容:

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

或者 RemoteServiceRelativePath 中的任何内容

You are going to want the following in your web.xml:

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

Or whatever is in your RemoteServiceRelativePath

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文