我正在开发一个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, ... );
}
当我运行我的应用时
模块已加载但是当我单击一个从我的服务器调用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>
我该怎么办?请帮忙。提前谢谢。
答案 0 :(得分:1)
我假设你在apache服务器上运行tomcat。要部署您的gwt项目,您应该build a .war-file,并且不要尝试手动复制所有部分。
404错误告诉我们,在您的服务器上找不到/位于/“SoapCon / soapcon / greet”的URL。部署.war而不是手动复制会自动将所有内容放在正确的位置。