我实现的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有什么问题吗?
答案 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中的任何内容