othman
othman

Reputation: 4556

how to deploy GWT app to tomcat

I searched this site for answer to this question and couldn't find a solution. what i did is that i simply compress the war directory in my eclipse GWT app project then rename it to .war then drop it to tomcat webapps folder. when i run the web app, the first screen is successfully shown but when i call a servlet within my src code it gives me resource not found by tomcat server. i'm sure i have added entry for servlet in web.xml file and the app worked well when i run it in eclipse gwt dev mode. something prevent my servlets (standard servlets not GWT RPC servlets) to be found and executed by tomcat. what could be the reason?


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>

Error

nothing in tomcate logs files the only error in browser is :

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

Upvotes: 5

Views: 8430

Answers (3)

othman
othman

Reputation: 4556

I found the problem : for invoking my servlet i was calling a url of the format : "/goauth/OAuth" this worked with eclipse gwt plugin in dev mode but not when i deploy war to tomcat server. the solution is that my url pointing to my servlet should be of the form :

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

so we need to tell tomcat the full url by prefixing servlet url with GWT.getHostPageBaseURL().

Upvotes: 4

maneesh
maneesh

Reputation: 1701

In your mapping, try changing /goauth/oauth to /OAuth

Upvotes: 0

Peter Knego
Peter Knego

Reputation: 80330

Take a look at how to create a GWT .war in eclipse: http://blog.elitecoderz.net/gwt-and-tomcat-create-war-using-eclipse-to-deploy-war-on-tomcat/2009/12/

Upvotes: 1

Related Questions