Presently, when i try to run my gwt application through eclipse I am 
getting a curious:
"java.lang.NoClassDefFoundError: 
com/google/gwt/user/client/rpc/RemoteService"

The intersting about this exception is that by command line firing a 
gwt:run my project loads and runs just fine.
It is thorugh eclipse, where the classpath is even larger, that the 
exception happens.


After creating a fancy perl script to farm the .jar files and directories 
indicated by oracle visual vm for sun.java.classpath system variable, i was 
able to track that my maven runtime project has this class under the 
following loacations:

Search results are: 
 $VAR1 = {
          
'/home/nmatos/.m2/repository/com/google/gwt/gwt-servlet/2.4.0/gwt-servlet-2.4.0.jar'
 
=> [
                                                                            
                        
'com/google/gwt/user/client/rpc/RemoteService.class',
                                                                            
                        
'com/google/gwt/user/client/rpc/RemoteServiceRelativePath.class'
                                                                            
                      ],
          
'/home/nmatos/.m2/repository/com/google/gwt/gwt-user/2.4.0/gwt-user-2.4.0.jar' 
=> [
                                                                            
                  'com/google/gwt/user/client/rpc/RemoteService.class',
                                                                            
                  'com/google/gwt/user/client/rpc/RemoteService.java',
                                                                            
                  
'com/google/gwt/user/client/rpc/RemoteServiceRelativePath.class',
                                                                            
                  
'com/google/gwt/user/client/rpc/RemoteServiceRelativePath.java'
                                                                            
                ]
        };


On the other hand, when I use the google eclipse plugin to lunch the 
com.google.gwt.dev.DevMode , I have an even larger set of jar files 
containing this class (due to overhead jars that originate from automatic 
project configuration triggered by the eclipse plugin):
Search results are: 
 $VAR1 = {
          
'/home/nmatos/Desktop/Applications/eclipse_20121024/plugins/com.google.gwt.eclipse.sdkbundle_2.4.0.v201208080121-rel-r42/gwt-2.4.0/gwt-servlet.jar'
 
=> [
                                                                            
                                                                            
           'com/google/gwt/user/client/rpc/RemoteService.class',
                                                                            
                                                                            
           'com/google/gwt/user/client/rpc/RemoteServiceRelativePath.class'
                                                                            
                                                                            
         ],
          
'/home/nmatos/Desktop/Applications/eclipse_20121024/plugins/com.google.gwt.eclipse.sdkbundle_2.4.0.v201208080121-rel-r42/gwt-2.4.0/gwt-user.jar'
 
=> [
                                                                            
                                                                            
        'com/google/gwt/user/client/rpc/RemoteService.class',
                                                                            
                                                                            
        'com/google/gwt/user/client/rpc/RemoteService.java',
                                                                            
                                                                            
        'com/google/gwt/user/client/rpc/RemoteServiceRelativePath.class',
                                                                            
                                                                            
        'com/google/gwt/user/client/rpc/RemoteServiceRelativePath.java'
                                                                            
                                                                            
      ],
          
'/home/nmatos/.m2/repository/com/google/gwt/gwt-servlet/2.4.0/gwt-servlet-2.4.0.jar'
 
=> [
                                                                            
                        
'com/google/gwt/user/client/rpc/RemoteService.class',
                                                                            
                        
'com/google/gwt/user/client/rpc/RemoteServiceRelativePath.class'
                                                                            
                      ],
          
'/home/nmatos/.m2/repository/com/google/gwt/gwt-user/2.4.0/gwt-user-2.4.0.jar' 
=> [
                                                                            
                  'com/google/gwt/user/client/rpc/RemoteService.class',
                                                                            
                  'com/google/gwt/user/client/rpc/RemoteService.java',
                                                                            
                  
'com/google/gwt/user/client/rpc/RemoteServiceRelativePath.class',
                                                                            
                  
'com/google/gwt/user/client/rpc/RemoteServiceRelativePath.java'
                                                                            
                ]
        };



Juding from the stack trace, jvm standard class loaders seem be used, they 
should farm the jars defined in -cp system variable:

WARNING: Error starting handlers
java.lang.NoClassDefFoundError: com/google/gwt/user/client/rpc/RemoteService
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at 
com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:207)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at 
com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:207)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at org.mortbay.util.Loader.loadClass(Loader.java:91)
at org.mortbay.util.Loader.loadClass(Loader.java:71)
at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at 
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at 
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:224)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at 
com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:205)
at 
com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:249)
at 
com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:157)
at 
com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java:97)
at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1068)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811)
at com.google.gwt.dev.DevMode.main(DevMode.java:311)
Caused by: java.lang.ClassNotFoundException: 
com.google.gwt.user.client.rpc.RemoteService
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at 
com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:207)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 48 more


Any hints on what is going wrong here?
I'd say the runtime should have an over those of class found exception, if 
that even existed, not the other way around.

Thanks in advance.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/3Al-zITOjHcJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to