在Apache上使用RPC调用部署GWT App

时间:2011-12-07 06:58:12

标签: gwt apache2 axis gwt-rpc

我正在开发一个GWT应用,假设SoapCon连接到网络服务,所以我在服务器端使用Axis连接到此网络服务。当我在开发模式下运行我的应用程序时,它工作正常(它返回xml作为其响应)。但是当我将我的应用程序部署到Apache 2.0中的Linux时,RPC失败并返回404作为servlet映射URL。

当我将此应用程序部署到Apache时,我递归地将/ war / soapcon复制到/ var / www / html / SoapCon目录以及SoapCon.html和.css。

这是我的web.xml

<!-- Servlets -->
<servlet>
  <servlet-name>greetServlet</servlet-name>
  <servlet-class>com.sample.google.server.SampleServiceImpl</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>greetServlet</servlet-name>
  <url-pattern>/soapcon/greet</url-pattern>
</servlet-mapping>

SoapCon.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='soapcon'>
....

RPC服务的客户端存根:

@RemoteServiceRelativePath("greet")
public interface SampleService extends RemoteService {
    String method( String params, ... );
}

当我运行我的应用时

http://localhost/SoapCon/SoapCon.html

模块已加载但是当我单击一个从我的服务器调用RPC方法的按钮时,会发生错误返回:

com.google.gwt.user.client.rpc.StatusCodeException: 404 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
  <title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /SoapCon/soapcon/greet was not found on this server.</p>
</body></html>

我该怎么办?请帮忙。提前谢谢。

1 个答案:

答案 0 :(得分:1)

我假设你在apache服务器上运行tomcat。要部署您的gwt项目,您应该build a .war-file,并且不要尝试手动复制所有部分。

404错误告诉我们,在您的服务器上找不到/位于/“SoapCon / soapcon / greet”的URL。部署.war而不是手动复制会自动将所有内容放在正确的位置。