I caught this just a minute ago, I didn't realize there were compiled class on the client side, I assumed all of that turned into javascript? Interesting.. So any client side RPC code gets compiled into java class??
Thanks. Scarlson On Feb 18, 3:51 pm, Isaac Truett <[email protected]> wrote: > > java.lang.ClassNotFoundException: com.i2s.webMonster.client.MsgService > > You didn't deploy this class. > > On Wed, Feb 18, 2009 at 3:08 PM, scarlson <[email protected]> wrote: > > > Hello All -- I've been to the Tomcat forums already originally > > thinking it was a servlet container issue. I don't think this is the > > case anymore. > > > I have made a simple generic gwt rpc module.. When I run in hosted > > mode, everything is great. When I deploy my WAR file, the client side > > stuff works, but no servlet. Does anything jump out?? I've been > > fighting this for a couple of days.. I keep coming back to the > > conclusion that my container is configured wrong. > > > A bit more info about container.. I'm running Ubuntu 8.10 / Apache2 / > > tomcat6 / mod-proxy > > Apache and Tomcat appear fully functional.. I have also successfully > > added a proxy to take me to port 8080 when calling my webapp. I've > > posted similar data to TomCat forum, and judging from responses, I > > have the container properly configured? > > > I've also tried re-arranging my WEB-INF/ structure... > > It was original WEB-INF/classes/MsgServiceImpl.class > > not it is WEB-INF/classes/com/i2s/webMonster/server/ > > MsgServiceImpl.class > > > I don't think I have a clue at this point... > > > Thanks in Advance, Attached below are my code/logs > > > -Scarlson > > > --- Tomcat localhost log file output --------- > > SEVERE: Allocate exception for servlet MsgService > > java.lang.ClassNotFoundException: com.i2s.webMonster.client.MsgService > > at org.apache.catalina.loader.WebappClassLoader.loadClass > > (WebappClassLoader.java:1387) > > at org.apache.catalina.loader.WebappClassLoader.loadClass > > (WebappClassLoader.java:1233) > > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) > > at java.lang.ClassLoader.defineClass1(Native Method) > > at java.lang.ClassLoader.defineClass(ClassLoader.java:621) > > at > > java.security.SecureClassLoader.defineClass(SecureClassLoader.java: > > 124) > > at org.apache.catalina.loader.WebappClassLoader.findClassInternal > > (WebappClassLoader.java:1847) > > at org.apache.catalina.loader.WebappClassLoader.findClass > > (WebappClassLoader.java:890) > > at org.apache.catalina.loader.WebappClassLoader.loadClass > > (WebappClassLoader.java:1354) > > at org.apache.catalina.loader.WebappClassLoader.loadClass > > (WebappClassLoader.java:1233) > > at org.apache.catalina.core.StandardWrapper$1.run > > (StandardWrapper.java:1077) > > at java.security.AccessController.doPrivileged(Native Method) > > at org.apache.catalina.core.StandardWrapper.loadServlet > > (StandardWrapper.java:1073) > > at org.apache.catalina.core.StandardWrapper.allocate > > (StandardWrapper.java:808) > > at org.apache.catalina.core.StandardWrapperValve.invoke > > (StandardWrapperValve.java:129) > > at org.apache.catalina.core.StandardContextValve.invoke > > (StandardContextValve.java:191) > > at org.apache.catalina.core.StandardHostValve.invoke > > (StandardHostValve.java:128) > > at org.apache.catalina.valves.ErrorReportValve.invoke > > (ErrorReportValve.java:102) > > at org.apache.catalina.core.StandardEngineValve.invoke > > (StandardEngineValve.java:109) > > at org.apache.catalina.valves.AccessLogValve.invoke > > (AccessLogValve.java:568) > > at org.apache.catalina.connector.CoyoteAdapter.service > > (CoyoteAdapter.java:286) > > at org.apache.coyote.http11.Http11Processor.process > > (Http11Processor.java:845) > > at org.apache.coyote.http11.Http11Protocol > > $Http11ConnectionHandler.process(Http11Protocol.java:583) > > at > > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java: > > 447) > > at java.lang.Thread.run(Thread.java:619) > > ---------------------snip > > > ----------- web.xml ----------------- > > <?xml version="1.0" encoding="UTF-8"?> > > <web-app> > > > <!-- Standard Action Servlet Configuration --> > > <servlet> > > <servlet-name>MsgService</servlet-name> > > <servlet-class>com.i2s.webMonster.server.MsgServiceImpl</servlet- > > class> > > </servlet> > > > <!-- Standard Action Servlet Mapping --> > > <servlet-mapping> > > <servlet-name>MsgService</servlet-name> > > <url-pattern>/MsgService</url-pattern> > > </servlet-mapping> > > > </web-app> > > ------------------------ snip -------------------- > > > ----------- MsgService.java -------------------------- > > package com.i2s.webMonster.client; > > > import com.google.gwt.core.client.GWT; > > import com.google.gwt.user.client.rpc.RemoteService; > > import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; > > > @RemoteServiceRelativePath("MsgService") > > public interface MsgService extends RemoteService { > > /** > > * Utility class for simplifying access to the instance of async > > service. > > */ > > public String getMsg(); > > > public static class Util { > > private static MsgServiceAsync instance; > > public static MsgServiceAsync getInstance(){ > > if (instance == null) { > > instance = GWT.create(MsgService.class); > > } > > return instance; > > } > > } > > } > > > -------------------- snip > > > ----------- MsgServiceAsync.java -------------------------- > > package com.i2s.webMonster.client; > > > import com.google.gwt.user.client.rpc.AsyncCallback; > > > public interface MsgServiceAsync { > > /** > > * Utility class for simplifying access to the instance of async > > service. > > */ > > public void getMsg(AsyncCallback<String> callback); > > } > > > ------------------ snip > > > ----------- MsgServiceImpl.java -------------------------- > > package com.i2s.webMonster.server; > > > import com.i2s.webMonster.client.MsgService; > > > public class MsgServiceImpl extends RemoteServiceServlet implements > > MsgService { > > > �...@override > > public String getMsg() { > > > // TODO Auto-generated method stub > > return "Gotcha!"; > > } > > } > > > --------------snip > > > ----------- Here is what the call to the servlet looks like > > private void getServerMsg() { > > MsgServiceAsync msgService = MsgService.Util.getInstance(); > > ServiceDefTarget endpoint = (ServiceDefTarget)msgService; > > endpoint.setServiceEntryPoint(GWT.getModuleBaseURL() + > > "MsgService"); > > > AsyncCallback callback = new AsyncCallback() { > > public void onSuccess(Object result) { > > Window.alert((String) result); > > } > > public void onFailure(Throwable caught) { > > Window.alert("Server request falure."); > > } > > }; > > msgService.getMsg(callback); > > } > > ---------------- snip --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
