如何将GWT应用程序部署到tomcat

oth*_*man 5 gwt tomcat7

我在这个网站上搜索了这个问题的答案,但找不到解决方案.我做的是我只是压缩我的eclipse GWT应用程序项目中的war目录,然后将其重命名为.war然后将其删除到tomcat webapps文件夹.当我运行Web应用程序时,第一个屏幕成功显示但是当我在我的src代码中调用servlet时,它给了我tomcat服务器找不到的资源.我确定我已经在web.xml文件中添加了servlet的条目,并且当我在eclipse gwt dev模式下运行它时应用程序运行良好.某些事情阻止我的servlet(标准servlet而不是GWT RPC servlet)被tomcat找到并执行.可能是什么原因?


UPDATE

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>OAuth</servlet-name>
        <servlet-class>org.goauth.server.OAuthServlet</servlet-class>

    </servlet>
    <servlet-mapping>
        <servlet-name>OAuth</servlet-name>
        <url-pattern>/goauth/oauth</url-pattern>
    </servlet-mapping>
     <servlet>
        <servlet-name>OAuthCallback</servlet-name>

        <servlet-class>org.goauth.server.OAuthCallbackServlet</servlet-class>

    </servlet>
    <servlet-mapping>
        <servlet-name>OAuthCallback</servlet-name>
        <url-pattern>/goauth/callback</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>service</servlet-name>

        <servlet-class>org.goauth.server.OAuthServiceImpl</servlet-class>

    </servlet>
    <servlet-mapping>
        <servlet-name>service</servlet-name>
        <url-pattern>/goauth/service</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>OAuthConfirm</servlet-name>
        <servlet-class>org.goauth.server.OAuthConfirmServlet</servlet-class>

    </servlet>
    <servlet-mapping>
        <servlet-name>OAuthConfirm</servlet-name>
        <url-pattern>/goauth/confirm</url-pattern>
    </servlet-mapping>
  <!-- Default page to serve -->
  <welcome-file-list>
    <welcome-file>GOAuth.html</welcome-file>
  </welcome-file-list>    
</web-app>
Run Code Online (Sandbox Code Playgroud)

错误

tomcate日志文件中没有任何内容浏览器中唯一的错误是:

HTTP Status 404 - /goauth/oauth

type Status report

message /goauth/oauth

description The requested resource (/goauth/oauth) is not available.
Apache Tomcat/6.0.20
Run Code Online (Sandbox Code Playgroud)

oth*_*man 4

我发现了问题:为了调用我的 servlet,我调用了以下格式的 url:"/goauth/OAuth" 这适用于开发模式下的 eclipse gwt 插件,但当我将 war 部署到 tomcat 服务器时则不行。解决方案是我的 url 指向我的 servlet 的形式应该是:

String href = GWT.getHostPageBaseURL()+"goauth/OAuth";
Run Code Online (Sandbox Code Playgroud)

所以我们需要通过在 servlet url 前面加上 GWT.getHostPageBaseURL() 来告诉 tomcat 完整的 url。