Hi Gregor, Yup, that fixed it. Stupid newbie error - fortunately the sort of error that only gets made once. Now I can start putting back in the server functionality that I took out to debug it.
Thank you very much for your help, Keith On Fri, Sep 19, 2008 at 7:45 AM, gregor <[EMAIL PROTECTED]> wrote: > > 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 > > > -- ____________________________________ G. Keith Fuller, Ph.D., P.Eng. [EMAIL PROTECTED] [EMAIL PROTECTED] http://www.KeithFuller.ca/ (Due to mail filters outside of my control, mail sent from yahoo or hotmail accounts may not be delivered to me.) --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---