5

この質問への回答をこのサイトで検索しましたが、解決策が見つかりませんでした。私がしたことは、Eclipse GWTアプリプロジェクトのwarディレクトリを圧縮し、名前を.warに変更してから、tomcatwebappsフォルダーにドロップすることです。Webアプリを実行すると、最初の画面が正常に表示されますが、srcコード内でサーブレットを呼び出すと、Tomcatサーバーで見つからないリソースが表示されます。web.xmlファイルにサーブレットのエントリを追加したと確信しています。Eclipsegwtdevモードで実行すると、アプリは正常に機能しました。私のサーブレット(GWTRPCサーブレットではなく標準サーブレット)が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

問題が見つかりました:サーブレットを呼び出すために、次の形式のURLを呼び出していました:"/goauth/OAuth" これは開発モードのEclipse gwtプラグインで機能しましたが、Tomcatサーバーにwarをデプロイした場合は機能しませんでした。解決策は、サーブレットを指すURLが次の形式である必要があることです。

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

したがって、サーブレットurlの前にGWT.getHostPageBaseURL()を付けて、完全なURLをTomcatに通知する必要があります。

于 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 に答える