让谷歌GWT StockWatcher程序使用RPC调用处理Tomcat

时间:2011-10-25 11:41:45

标签: gwt tomcat

我遵循了默认的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不可用

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您的课程可能很好地编译在WEB-INF/classes中,而不是打包到JAR中,因此您的<include name="**/*.jar" />不包括您的课程。我不知道Ant足以为您提供构建WAR的更好方法(如果有的话),但尝试在现有的WAR旁边添加<include name="**/*.class" />以获取您的类。