5

我在这个网站上搜索了这个问题的答案,但找不到解决方案。我所做的是我只是在我的eclipse GWT应用程序项目中压缩war目录,然后将其重命名为.war,然后将其放到tomcat webapps文件夹中。当我运行 Web 应用程序时,第一个屏幕已成功显示,但是当我在我的 src 代码中调用 servlet 时,它给了我 tomcat 服务器找不到的资源。我确定我已经在 web.xml 文件中添加了 servlet 条目,并且当我在 eclipse gwt 开发模式下运行它时,该应用程序运行良好。有些东西阻止我的 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
4

3 回答 3

4

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

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

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

于 2011-06-04T00:25:01.070 回答
1

看看如何在 Eclipse 中创建 GWT .war:http ://blog.elitecoderz.net/gwt-and-tomcat-create-war-using-eclipse-to-deploy-war-on-tomcat/2009/ 12/

于 2011-06-02T11:47:15.373 回答
0

在您的映射中,尝试将 /goauth/oauth 更改为 /OAuth

于 2011-06-03T04:23:42.217 回答