Bob, I think you just missed one small, important bit (aren't the small bits always important?) when you translated the shell script into your Ant target. Referring to a shell script I found in one of my sandboxes, I found these to be the first two entries in the classpath:
%~dp0\src;%~dp0\bin; Your classpath does include the src directory, which is necessary for hosted mode to find your client-side classes and do that old GWT magic that it does so well. It also needs the bin directory because that's where, by convention, the server-side classes would be compiled to (Eclipse, et. al. do this automatically, as I mentioned before). So, again, you just need to compile your servlet and include the compiled classes in your classpath. Re: the book passage you quoted -- I suppose maybe it depends on how one interprets "deployed automatically" in that context. It is "deployed automatically" in the sense that you don't have to build a WAR file, copy it over to <tomcat_home>/webapps, and wait for Tomcat to deploy it (or "auto deploy" in the Tomcat parlance - isn't it wonderful how the words mean different things in different context?). But it is not "automatic" to the extent that you escape from the responsibilities of compilation and proper configuration of your classpath. I hope this is all becoming clearer. - Isaac On Sat, Feb 21, 2009 at 12:26 AM, BobM <[email protected]> wrote: > > Thank you, Gentlemen, both! > > Let deal with these responses one at a time: > Gregor: > > I am running an ant script based on the AppName-shell which was > created by applicationCreator. Here is the relevant section of the > ant build.xml: > <!-- =================== CSRapp: Run this application in GWT shell > ====== --> > <target name="debug"> > <java classname="com.google.gwt.dev.GWTShell" > fork="true" > spawn="true" > maxmemory="256m" > > <arg value="-out"/> > <arg value="www"/> > <arg value="org.bcs.CSRapp/CSRapp.html" /> > <classpath> > <pathelement path="src"/> > <pathelement path="${java.class.path}/"/> > <pathelement path="/usr/local/Java/GWT/gwt-linux-1.5.0/gwt-user.jar"/ >> > <pathelement path="/usr/local/Java/GWT/gwt-linux-1.5.0/gwt-dev- > linux.jar"/> > </classpath> > </java> > <echo> > The GWT shell is starting. > </echo> > </target> > > And here is the tree diagram of the files layout under "src":: > src > `-- org > `-- bcs > |-- CSRapp.gwt.xml > |-- client > | |-- CSRappEntryPoint.java > | `-- gui > | |-- MainFrame.java > | |-- MessagePanel.java > | |-- SelectionPage.java > | |-- SelectionSearchService.java > | `-- SelectionSearchServiceAsync.java > |-- public > | |-- CSRapp.html > | |-- WEB-INF > | | `-- web.xml > | |-- messagePanel.css > | `-- selectionPage.css > `-- server > |-- SelectionSearchServiceImpl.java > |-- db > | |-- HibernateUtil.java > | |-- ModelFacade.java > | `-- package.html > `-- utils > |-- ClientException.java > |-- ServiceProvider.hbm.xml > |-- ServiceProvider.java > |-- SpChangeEvent.java > `-- SpChangeListener.java > > And this is the way the service is mapped in the module.xml: > <servlet path="/selectionSearchService" > class="org.bcs.server.SelectionSearchServiceImpl" /> > > > Now, to respond to Isaac: > > Yes I am certainly confused, then. In the book "GWT in Action" the > authors state, on page 87, last line in the first paragraph, "Hosted > mode also includes an embedded version of the Tomcat servlet engine > into which any server-side Java code is deployed automatically." And > that was specifically referring to the behavior of the hosted mode > shell, not to an IDE. > > It is possible that statement in that book is incorrect. So I went > chasing after confirmation in the Developer's Guide. I couldn't find > any statement quite as bold and forthright as that but I could find no > contrary instructions and most of what I did find implied agreement > with that statement. > > The documentation does specifically state that compilation is required > and a standard war file deployment is required to support running in > web mode (as I would expect). If I cannot sort this out I may just > try to effect deployment to a separate Tomcat instance and see if I > have the same problems there, running in web mode. > > Thank you both for thinking about this issue with me. > > On Feb 20, 7:46 pm, Isaac Truett <[email protected]> wrote: >> No, there's no getting around compiling your server-side Java. Now, a >> lot of examples are written with the assumption that you're using >> Eclipse or some other IDE. And since anything that can properly be >> termed an IDE will be doing the compilation for you, automatically, >> and usually in the background without you noticing, it would be easy >> to omit even mentioning that part. That's probably what led you >> astray. If you're not using an IDE you'll need to run javac yourself. >> If you are using one, make sure that it is compiling to "bin" (or >> "classes" or whatever other directory you have in your classpath). >> >> On Fri, Feb 20, 2009 at 5:41 PM, BobM <[email protected]> wrote: >> >> > Whoa! Wait a minute. You've sent me back to the books ... back to >> > the Developer's Guide and other GWT documentation. to re-confirm my >> > understanding. >> >> > I am simply trying to run this application in hosted mode. My >> > understanding is that I don't have to compile anything or set any >> > adjustments to the classpath specified by AppName-shell provided by >> > applicationCreator. Is that not correct? >> >> > My understanding is that, in hosted mode, the server-side code is >> > automatically deployed to the embedded tomcat server. Now, I cannot >> > see in tomcat and its subdirctories any evidence that has happened, >> > but I have no idea what I am looking for either. >> >> > I understand from my reading of the process for hosted mode that all I >> > should have to do - provided, of course, that my module.xml file >> > provides proper mapping of the service - is run AppName-shell and >> > everything should work ... if the code and configuration files are >> > correct. >> >> > If there is more to it, then I need guidance on what I have left >> > undone. >> >> > On Feb 19, 1:56 pm, Isaac Truett <[email protected]> wrote: >> >> ClassNotFound means something needs to be in your classpath and it isn't. >> >> >> 1. Is the class compiled? >> >> 2. Is the .class file in the appropriate location somewhere on your >> >> classpath? >> >> >> That's really all there is to it. >> >> >> On Thu, Feb 19, 2009 at 2:52 PM, BobM <[email protected]> wrote: >> >> >> > Setting loglLevel to ALL did not provide anything new or >> >> > enlightening. As when trying to effect an GWT RPC in my own app I get >> >> > the message, Unable to instantiate and the cause is ClassNotFound. >> >> >> > I am at a loss. >> >> >> > On Feb 19, 1:22 pm, BobM <[email protected]> wrote: >> >> >> I have build another project, using applicationCreator, but used the >> >> >> already written code from a tutorial on writing GWT RPCs. I get the >> >> >> same failure using this code, when running appName-shell: Unable to >> >> >> instantiate. >> >> >> >> What is going on here? I haven't a clue or a way to dig deeper. >> >> >> Well, I will re-run these application with debug level set up to >> >> >> greater detail. >> >> >> >> On Feb 19, 8:04 am, BobM <[email protected]> wrote: >> >> >> >> > Mike, that was a good catch, but that difference was just a "typo" on >> >> >> > my part. When I copied and pasted the messages into my post I just >> >> >> > missed including the "l" in Impl on one of the messages. Actually >> >> >> > both are the same. >> >> >> >> > Now, I have scanned other posts on this same issue. Most suggest it >> >> >> > is a classpath issue. Okay, when I include "www" in the GWTShell >> >> >> > command, it I get the same results ... no improvement. >> >> >> >> > I think the question I have is, "How to deploy the server-side >> >> >> > compiled code into the embedded Tomcat?" I do not see evidence that >> >> >> > Tomcat even knows about the service Impl. As I understand it, I >> >> >> > should only have to run CSRapp-compile and CSRapp-shell for >> >> >> > everything >> >> >> > to work. Correct? I have re-visited both the tutorial and the >> >> >> > developer's guide and I can find nothing that provides good guidance >> >> >> > on this issue. >> >> >> >> > On Feb 19, 4:59 am, "[email protected]" <[email protected]> >> >> >> > wrote: >> >> >> >> > > The first thing I noticed is that at one place in your message it's >> >> >> > > referred to as >> >> >> > > SelectionSearchServiceImp and in another it's >> >> >> > > SelectionSearchServiceImpl. >> >> >> > > That would indicate that your class is named one and is referenced >> >> >> > > in >> >> >> > > your >> >> >> > > Gwt.xml as the other. Again, that's the first thing I noticed..... >> >> >> >> > > Good luck! >> >> >> >> > > Later, >> >> >> > > Shaffer >> >> >> >> > > On Feb 18, 8:15 pm, BobM <[email protected]> wrote: >> >> >> >> > > > More detail from this message which was presented in the GWT >> >> >> > > > shell >> >> >> > > > when I made a GWT RPC call attempt: >> >> >> > > > java.lang.ClassNotFoundException: >> >> >> > > > org.bcs.server.SelectionSearchServiceImp >> >> >> >> > > > The message from caught.getMessage(): >> >> >> > > > Unable to find/load mapped servlet class >> >> >> > > > 'org.bcs.server.SelectionSearchServiceImpl >> >> >> >> > > > The rpc.log (which to my surprise gets created upon gwt compile) >> >> >> > > > reports this: >> >> >> > > > Reachable types computed on: Wed Feb 18 20:29:40 CST 2009 >> >> >> > > > com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException >> >> >> > > > Serialization status >> >> >> > > > Instantiable >> >> >> > > > Path >> >> >> > > > Started from >> >> >> > > > 'com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException' >> >> >> >> > > > java.lang.Exception >> >> >> > > > Serialization status >> >> >> > > > Field serializable >> >> >> > > > Path >> >> >> > > > Started from >> >> >> > > > 'com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException' >> >> >> >> > > > java.lang.Object >> >> >> > > > Serialization status >> >> >> > > > Not serializable >> >> >> > > > Path >> >> >> > > > Started from 'java.lang.String' >> >> >> >> > > > java.lang.RuntimeException >> >> >> > > > Serialization status >> >> >> > > > Field serializable >> >> >> > > > Path >> >> >> > > > Started from >> >> >> > > > 'com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException' >> >> >> >> > > > java.lang.String >> >> >> > > > Serialization status >> >> >> > > > Instantiable >> >> >> > > > Path >> >> >> > > > Started from 'java.lang.String' >> >> >> >> > > > java.lang.String[] >> >> >> > > > Serialization status >> >> >> > > > Instantiable >> >> >> > > > Path >> >> >> > > > Type 'java.lang.String[]' is reachable from array type >> >> >> > > > 'java.lang.String[][]' >> >> >> > > > Started from 'java.lang.String[][]' >> >> >> >> > > > java.lang.String[][] >> >> >> > > > Serialization status >> >> >> > > > Instantiable >> >> >> > > > Path >> >> >> > > > Started from 'java.lang.String[][]' >> >> >> >> > > > java.lang.Throwable >> >> >> > > > Serialization status >> >> >> > > > Field serializable >> >> >> > > > Path >> >> >> > > > Started from >> >> >> > > > 'com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException' >> >> >> > > > =============== >> >> >> >> > > > Is there something I have failed to do with regard to setup to >> >> >> > > > run in >> >> >> > > > hosted mode? What is the problem here? Although I doubt I am >> >> >> > > > yet >> >> >> > > > really able to decipher the log, I don't see anything in the log >> >> >> > > > that >> >> >> > > > is an obvious problem although it reports this >> >> >> > > > "ImcompatibleRemoteServiceException", if that is the/a problem. >> >> >> >> > > > Anything else I need to look at or report to y'all to fully >> >> >> > > > diagnose >> >> >> > > > this issue? >> >> >> >> > > > Thanks for help. > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected] 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 -~----------~----~----~----~------~----~------~--~---
