Hi Keith,

Looking at your deployment structure:

The web server has the directory structure:
apache-tomcat-5.5.25/webapps
        CorpusSearch
                ... a pile of html, rpc, js, html, css, and...
                web.xml
                WEB-INF
                        classes
                                CorpusSearch.class
                                CorpusSearchReturns.class
                                CorpusSearchServiceAsync.class
                                CorpusSearchData.class
                                CorpusSearchService.class
                                CorpusServiceImpl.class
                                web.xml
                        lib
                                gwt-servlet.jar
                        web.xml

the package structure ca.KeithFuller.server seems to be missing which
would explain why you get a ClassNotFoundException for
ca.KeithFuller.server.CorpusServiceImpl. I think you should copy the
entire directory structure under WEB-INF\classes.

Also I would recommend you take a little time to make an Ant build
script that creates a WAR file for you application and copies it
straight to your Tomcat deployment directory where it will
automatically redeploy. This will kill problems like this (because Ant
doesn't make mistakes) and save you a lot of time in the long run.
There are lots of examples of how to do this in the group - just
search for ant build WAR.

regards
gregor




On Sep 18, 4:40 pm, Keith <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> First off, I am a new user and have built a very simple application.
> It works fine under hosted mode.  It compiles with no errors.  When I
> deploy it to the web server and point a browser at it, it throws a
> ClassNotFoundException.  I suspect this is a really simple problem
> (probably caused by a really stupid error).  This is driving me crazy
> and I would really appreciate ANY help or suggestions anyone could
> throw my way.
>
> I have included a lot of error logs, copies of web.xml, directory
> structures etc. below.
>
> Trying to work through this is a learning experience, but I am
> stumped.  The fact that the server is able to sort out the URL sent
> from the client enough to know the name of the object is
> ca.KeithFuller.server.CorpusServiceImpl suggests to me that the server
> is finding the web.xml file, which suggests that it should be able to
> find the object since I believe that WEB-INF/classes is always on the
> search path.  The file CorpusServiceImpl.class is in WEB-INF/classes,
> and the corresponding java file starts with:
>
> package ca.KeithFuller.server;
>
> import java.util.*;                              // for Scanner
> import java.io.*;                                // for println
>
> import ca.KeithFuller.client.CorpusSearchReturns;
> import ca.KeithFuller.client.CorpusSearchService;
>
> import com.google.gwt.user.server.rpc.RemoteServiceServlet;
>
> public class CorpusServiceImpl extends RemoteServiceServlet
> implements CorpusSearchService
> {
> ...
>
> A whole pile of details follow:
>
> I use GWT 1.4.61
>
> I use Eclipse 3.2.2
>
> My webserver uses Linux, Tomcat and Apache.
>
> I use FireFox 3.0.1 and the URL 
> ishttp://www.keithfuller.ca:9108/CorpusSearch/CorpusSearch.html
>
> The client code contains:
> ...
>                 // Create the proxy object
>                 final CorpusSearchServiceAsync serviceProxy =
>                         (CorpusSearchServiceAsync) 
> GWT.create(CorpusSearchService.class);
>
>                 // Cast the proxy object to ServiceDefTarget
>                 String serviceUrl = GWT.getModuleBaseURL() + "corpus-search";
> //              if (GWT.isScript()){
> //                      serviceUrl = "/corpus-search";
> //              }
>                 
> ((ServiceDefTarget)serviceProxy).setServiceEntryPoint(serviceUrl);
> ...
>
> The localhost.2008-09-18.log file contains:
> Sep 18, 2008 10:21:04 AM org.apache.catalina.core.ApplicationContext
> log
> INFO: Marking servlet corpus-search as unavailable
> Sep 18, 2008 10:21:04 AM org.apache.catalina.core.ApplicationContext
> log
> SEVERE: Error loading WebappClassLoader
>   delegate: false
>   repositories:
>     /WEB-INF/classes/
> ----------> Parent Classloader:
> [EMAIL PROTECTED]
>  ca.KeithFuller.server.CorpusServiceImpl
> java.lang.ClassNotFoundException:
> ca.KeithFuller.server.CorpusServiceImpl
>         at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:
> 1362)
>         at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:
> 1208)
>         at
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:
> 1068)
>         at
> org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:
> 791)
>         at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
> 127)
>         at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
> 174)
>         at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
> 127)
>         at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
> 117)
>         at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
> 108)
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
> 151)
>         at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
> 874)
>         at org.apache.coyote.http11.Http11BaseProtocol
> $Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:
> 665)
>         at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:
> 528)
>         at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:
> 81)
>         at org.apache.tomcat.util.threads.ThreadPool
> $ControlRunnable.run(ThreadPool.java:689)
>         at java.lang.Thread.run(Thread.java:595)
> Sep 18, 2008 10:21:04 AM org.apache.catalina.core.StandardWrapperValve
> invoke
> SEVERE: Allocate exception for servlet corpus-search
> java.lang.ClassNotFoundException:
> ca.KeithFuller.server.CorpusServiceImpl
>         at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:
> 1362)
>         at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:
> 1208)
>         at
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:
> 1068)
>         at
> org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:
> 791)
>         at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
> 127)
>         at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
> 174)
>         at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
> 127)
>         at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
> 117)
>         at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
> 108)
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
> 151)
>         at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
> 874)
>         at org.apache.coyote.http11.Http11BaseProtocol
> $Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:
> 665)
>         at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:
> 528)
>         at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:
> 81)
>         at org.apache.tomcat.util.threads.ThreadPool
> $ControlRunnable.run(ThreadPool.java:689)
>         at java.lang.Thread.run(Thread.java:595)
>
> The web server has the directory structure:
> apache-tomcat-5.5.25/webapps
>         CorpusSearch
>                 ... a pile of html, rpc, js, html, css, and...
>                 web.xml
>                 WEB-INF
>                         classes
>                                 CorpusSearch.class
>                                 CorpusSearchReturns.class
>                                 CorpusSearchServiceAsync.class
>                                 CorpusSearchData.class
>                                 CorpusSearchService.class
>                                 CorpusServiceImpl.class
>                                 web.xml
>                         lib
>                                 gwt-servlet.jar
>                         web.xml
>
> The dev machine directory structure is:
> Eclipse Workspace
>         .metadata
>         SearchProject
>                 ...
>                 src
>                   ca
>                     KeithFuller
>                         CorpusSearch.gwt.xml
>                         client
>                                 CorpusSearch.java
>                                 CorpusSearchReturns.java
>                                 CorpusSearchServiceAsync.java
>                                 CorpusSearchData.java
>                                 CorpusSearchService.java
>                         server
>                                 CorpusServiceImpl.java
>                         public
>                                 CorpusSearch.html
>                                 SearchProject.css
>
> The Eclipse Package Explorer shows:
> SearchProject
>         src
>                 ca.KeithFuller
>                         client  (a package)
>                                 CorpusSearch.java
>                                 CorpusSearchReturns.java
>                                 CorpusSearchServiceAsync.java
>                                 CorpusSearchData.java
>                                 CorpusSearchService.java
>                         server  (a package)
>                                 CorpusServiceImpl.java
>                         public  (a folder)
>                                 CorpusSearch.html
>                         CorpusSearch.gwt.xml
>
> CorpusSearch.gwt.xml contains:
> <module>
>
>         <!-- Inherit the core Web Toolkit stuff.                  -->
>         <inherits name='com.google.gwt.user.User'/>
>
>         <!-- Specify the app entry point class.                   -->
>         <entry-point class='ca.KeithFuller.client.CorpusSearch'/>
>
>         <servlet path="/corpus-search"
>                  class="ca.KeithFuller.server.CorpusServiceImpl"/>
>
>         <stylesheet src="SearchProject.css"/>
>
> </module>
>
> web.xml (all of them!) contain:
> <?xml version="1.0" encoding="UTF-8"?>
> <web-app>
>
>         <servlet>
>                 <servlet-name>corpus-search</servlet-name>
>                 
> <servlet-class>ca.KeithFuller.server.CorpusServiceImpl</servlet-
> class>
>         </servlet>
>
>         <servlet-mapping>
>                 <servlet-name>corpus-search</servlet-name>
> <!--                                 <url-pattern>/CorpusSearch</url-pattern> 
>                -->
>                 <url-pattern>/corpus-search</url-pattern>
>         </servlet-mapping>
>
> </web-app>
>
> If you got this far and have any ideas, then please let me know.
>
> Thanks
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to Google-Web-Toolkit@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to