我遵循了默认的GWT教程,并使用了Java RPC部分http://code.google.com/webtoolkit/doc/latest/tutorial/RPC.html来创建示例StockWatcher应用程序。
我在eclipse本地工作,包括java servlet的东西。 war / WEB-INF / web.xml文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee">
<!-- Servlets -->
<servlet>
<servlet-name>stockPriceServiceImpl</servlet-name>
<servlet-class>com.google.gwt.sample.stockwatcher.server.StockPriceServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>stockPriceServiceImpl</servlet-name>
<url-pattern>/stockwatcher/stockPrices</url-pattern>
</servlet-mapping>
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>StockWatcher.html</welcome-file>
</welcome-file-list>
</web-app>
我不知道如何将所有这些放入war文件中,但是在互联网上找到了这个ANT脚本它确实创建了.war文件。
<project name="StockWatcher" basedir="." default="default">
<target name="default" depends="buildwar,deploy"></target>
<target name="buildwar">
<war basedir="war" destfile="StockWatcher.war" webxml="war/WEB-INF/web.xml">
<exclude name="WEB-INF/**" />
<webinf dir="war/WEB-INF/">
<include name="**/*.jar" />
</webinf>
</war>
</target>
<target name="deploy">
<copy file="StockWatcher.war" todir="." />
</target>
</project>
当我将应用程序上传到Tomcat时,客户端javascript的东西工作正常,但RPC servlet无法正常工作,我收到以下错误。
HTTP状态404 - Servlet stockPriceServiceImpl不可用
我该如何解决这个问题?
答案 0 :(得分:0)
您的课程可能很好地编译在WEB-INF/classes
中,而不是打包到JAR中,因此您的<include name="**/*.jar" />
不包括您的课程。我不知道Ant足以为您提供构建WAR的更好方法(如果有的话),但尝试在现有的WAR旁边添加<include name="**/*.class" />
以获取您的类。