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

时间:2011-06-02 02:46:15

标签: gwt tomcat7

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


更新

的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>

错误

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

3 个答案:

答案 0 :(得分:4)

我发现了问题: 为了调用我的servlet我正在调用格式为的URL:"/goauth/OAuth" 这在dev模式下使用eclipse gwt插件,但在我将war部署到tomcat服务器时却没有。 解决方案是指向我的servlet的url应该是以下形式:

String href = GWT.getHostPageBaseURL()+"goauth/OAuth";

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

答案 1 :(得分:1)

答案 2 :(得分:0)

在您的映射中,尝试更改 / goauth / OAuth的 到/ OAuth