whirr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrei Savu <savu.and...@gmail.com>
Subject Re: java.lang.NoClassDefFoundError
Date Wed, 11 Sep 2013 04:52:27 GMT
Most likely you have another version of Guava on your classpath. Please
share the complete pom.xml file.

-- Andrei Savu / axemblr.com


On Wed, Sep 11, 2013 at 5:46 AM, Han,Meng <menghan@ufl.edu> wrote:

> Hi all,
>
> I am adding a plugin to CloudStack. One of the APIs of this plugin
> (launchCluster) is to start a haoop cluster on Cloudstack using Whirr. I
> included whirr as a dependency to my plugin.
>
> <dependency>
>       <groupId>org.apache.whirr</**groupId>
>       <artifactId>whirr</artifactId>
>       <version>0.8.2</version>
>       <type>pom</type>
> </dependency>
>
>
> When I test this api in CloudMonkey I am getting the following error:
>
>  launchCluster config=/home/meng/whirr/dream
>>
> HTTP Error 500: java.lang.**NoClassDefFoundError: org/jclouds/json/config/
> **GsonModule$DateAdapter
>
> Below is the management server log :
>
> Running on provider cloudstack using identity
> h3DKHC9AVlhKnUhpyThMuLhC119QfN**QQ8xhyjbf_**rnu5ZL1QeOWdw7aZRGXVO1VApG6q0a
> **K-A-tQRQsZFwnOXQ
> ERROR [apache.whirr.**ClusterController] (1859072722@qtp-1275353837-2:)
> Unable to start the cluster. Terminating all nodes.
> com.google.common.util.**concurrent.ExecutionError: java.lang.**NoClassDefFoundError:
> com/google/gson/TypeAdapter
>         at com.google.common.cache.**LocalCache$Segment.get(**
> LocalCache.java:2261)
>         at com.google.common.cache.**LocalCache.get(LocalCache.**
> java:3995)
>         at com.google.common.cache.**LocalCache.getOrLoad(**
> LocalCache.java:3999)
>         at com.google.common.cache.**LocalCache$LocalLoadingCache.**
> get(LocalCache.java:4869)
>         at com.google.common.cache.**LocalCache$LocalLoadingCache.**
> getUnchecked(LocalCache.java:**4875)
>         at org.apache.whirr.service.**ComputeCache.apply(**
> ComputeCache.java:86)
>         at org.apache.whirr.service.**ComputeCache.apply(**
> ComputeCache.java:78)
>         at org.apache.whirr.actions.**ScriptBasedClusterAction.**execute(*
> *ScriptBasedClusterAction.java:**110)
>         at org.apache.whirr.**ClusterController.**bootstrapCluster(**
> ClusterController.java:137)
>         at org.apache.whirr.**ClusterController.**launchCluster(**
> ClusterController.java:113)
>         at org.apache.whirr.cli.command.**LaunchClusterCommand.run(**
> LaunchClusterCommand.java:69)
>         at org.apache.whirr.cli.command.**LaunchClusterCommand.run(**
> LaunchClusterCommand.java:59)
>         at org.apache.cloudstack.api.**command.user.emr.**
> LaunchClusterCmd.execute(**LaunchClusterCmd.java:63)
>         at com.cloud.api.ApiDispatcher.**dispatch(ApiDispatcher.java:**
> 162)
>         at com.cloud.api.ApiServer.**queueCommand(ApiServer.java:**505)
>         at com.cloud.api.ApiServer.**handleRequest(ApiServer.java:**355)
>         at com.cloud.api.ApiServlet.**processRequest(ApiServlet.**
> java:302)
>         at com.cloud.api.ApiServlet.**doGet(ApiServlet.java:66)
>         at javax.servlet.http.**HttpServlet.service(**
> HttpServlet.java:707)
>         at javax.servlet.http.**HttpServlet.service(**
> HttpServlet.java:820)
>         at org.mortbay.jetty.servlet.**ServletHolder.handle(**
> ServletHolder.java:511)
>         at org.mortbay.jetty.servlet.**ServletHandler.handle(**
> ServletHandler.java:401)
>         at org.mortbay.jetty.security.**SecurityHandler.handle(**
> SecurityHandler.java:216)
>         at org.mortbay.jetty.servlet.**SessionHandler.handle(**
> SessionHandler.java:182)
>         at org.mortbay.jetty.handler.**ContextHandler.handle(**
> ContextHandler.java:766)
>         at org.mortbay.jetty.webapp.**WebAppContext.handle(**
> WebAppContext.java:450)
>         at org.mortbay.jetty.handler.**ContextHandlerCollection.**handle(*
> *ContextHandlerCollection.java:**230)
>         at org.mortbay.jetty.handler.**HandlerCollection.handle(**
> HandlerCollection.java:114)
>         at org.mortbay.jetty.handler.**HandlerWrapper.handle(**
> HandlerWrapper.java:152)
>         at org.mortbay.jetty.Server.**handle(Server.java:326)
>         at org.mortbay.jetty.**HttpConnection.handleRequest(**
> HttpConnection.java:542)
>         at org.mortbay.jetty.**HttpConnection$RequestHandler.**
> headerComplete(HttpConnection.**java:928)
>         at org.mortbay.jetty.HttpParser.**parseNext(HttpParser.java:549)
>         at org.mortbay.jetty.HttpParser.**parseAvailable(HttpParser.**
> java:212)
>         at org.mortbay.jetty.**HttpConnection.handle(**
> HttpConnection.java:404)
>         at org.mortbay.io.nio.**SelectChannelEndPoint.run(**
> SelectChannelEndPoint.java:**410)
>         at org.mortbay.thread.**QueuedThreadPool$PoolThread.**
> run(QueuedThreadPool.java:582)
> Caused by: java.lang.**NoClassDefFoundError: com/google/gson/TypeAdapter
>         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 org.mortbay.jetty.webapp.**WebAppClassLoader.loadClass(**
> WebAppClassLoader.java:392)
>         at org.mortbay.jetty.webapp.**WebAppClassLoader.loadClass(**
> WebAppClassLoader.java:363)
>         at org.jclouds.cloudstack.config.**CloudStackParserModule.**
> configure(**CloudStackParserModule.java:**46)
>         at com.google.inject.**AbstractModule.configure(**
> AbstractModule.java:59)
>         at com.google.inject.spi.**Elements$RecordingBinder.**
> install(Elements.java:223)
>         at com.google.inject.spi.**Elements.getElements(Elements.**
> java:101)
>         at com.google.inject.internal.**InjectorShell$Builder.build(**
> InjectorShell.java:133)
>         at com.google.inject.internal.**InternalInjectorCreator.build(**
> InternalInjectorCreator.java:**103)
>         at com.google.inject.Guice.**createInjector(Guice.java:95)
>         at org.jclouds.ContextBuilder.**buildInjector(ContextBuilder.**
> java:405)
>         at org.jclouds.ContextBuilder.**buildInjector(ContextBuilder.**
> java:329)
>         at org.jclouds.ContextBuilder.**buildView(ContextBuilder.java:**
> 620)
>         at org.jclouds.ContextBuilder.**buildView(ContextBuilder.java:**
> 600)
>         at org.apache.whirr.service.**ComputeCache$1.load(**
> ComputeCache.java:117)
>         at org.apache.whirr.service.**ComputeCache$1.load(**
> ComputeCache.java:96)
>         at com.google.common.cache.**LocalCache$**LoadingValueReference.**
> loadFuture(LocalCache.java:**3594)
>         at com.google.common.cache.**LocalCache$Segment.loadSync(**
> LocalCache.java:2379)
>         at com.google.common.cache.**LocalCache$Segment.**
> lockedGetOrLoad(LocalCache.**java:2342)
>         at com.google.common.cache.**LocalCache$Segment.get(**
> LocalCache.java:2257)
>         ... 36 more
> Caused by: java.lang.**ClassNotFoundException: com.google.gson.TypeAdapter
>         at org.codehaus.plexus.**classworlds.strategy.**
> SelfFirstStrategy.loadClass(**SelfFirstStrategy.java:50)
>         at org.codehaus.plexus.**classworlds.realm.ClassRealm.**
> loadClass(ClassRealm.java:244)
>         at org.codehaus.plexus.**classworlds.realm.ClassRealm.**
> loadClass(ClassRealm.java:230)
>         at org.mortbay.jetty.webapp.**WebAppClassLoader.loadClass(**
> WebAppClassLoader.java:401)
>         at org.mortbay.jetty.webapp.**WebAppClassLoader.loadClass(**
> WebAppClassLoader.java:363)
>         at java.lang.ClassLoader.**defineClass1(Native Method)
>         ... 63 more
> INFO  [whirr.state.**ClusterStateStore] (1859072722@qtp-1275353837-2:)
> Unable to load cluster state, assuming it has no running nodes.
> java.io.FileNotFoundException: /home/meng/.whirr/hadoop/**instances (No
> such file or directory)
>         at java.io.FileInputStream.open(**Native Method)
>         at java.io.FileInputStream.<init>**(FileInputStream.java:138)
>         at com.google.common.io.Files$**FileByteSource.openStream(**
> Files.java:124)
>         at com.google.common.io.Files$**FileByteSource.openStream(**
> Files.java:114)
>         at com.google.common.io.**ByteSource$AsCharSource.**
> openStream(ByteSource.java:**287)
>         at com.google.common.io.**CharStreams$3.getInput(**
> CharStreams.java:508)
>         at com.google.common.io.**CharStreams$3.getInput(**
> CharStreams.java:505)
>         at com.google.common.io.**CharStreams.readLines(**
> CharStreams.java:319)
>         at com.google.common.io.Files.**readLines(Files.java:690)
>         at org.apache.whirr.state.**FileClusterStateStore.load(**
> FileClusterStateStore.java:55)
>         at org.apache.whirr.state.**ClusterStateStore.**tryLoadOrEmpty(**
> ClusterStateStore.java:59)
>         at org.apache.whirr.**ClusterController.**destroyCluster(**
> ClusterController.java:226)
>         at org.apache.whirr.**ClusterController.**launchCluster(**
> ClusterController.java:121)
>         at org.apache.whirr.cli.command.**LaunchClusterCommand.run(**
> LaunchClusterCommand.java:69)
>         at org.apache.whirr.cli.command.**LaunchClusterCommand.run(**
> LaunchClusterCommand.java:59)
>         at org.apache.cloudstack.api.**command.user.emr.**
> LaunchClusterCmd.execute(**LaunchClusterCmd.java:63)
>         at com.cloud.api.ApiDispatcher.**dispatch(ApiDispatcher.java:**
> 162)
>         at com.cloud.api.ApiServer.**queueCommand(ApiServer.java:**505)
>         at com.cloud.api.ApiServer.**handleRequest(ApiServer.java:**355)
>         at com.cloud.api.ApiServlet.**processRequest(ApiServlet.**
> java:302)
>         at com.cloud.api.ApiServlet.**doGet(ApiServlet.java:66)
>         at javax.servlet.http.**HttpServlet.service(**
> HttpServlet.java:707)
>         at javax.servlet.http.**HttpServlet.service(**
> HttpServlet.java:820)
>         at org.mortbay.jetty.servlet.**ServletHolder.handle(**
> ServletHolder.java:511)
>         at org.mortbay.jetty.servlet.**ServletHandler.handle(**
> ServletHandler.java:401)
>         at org.mortbay.jetty.security.**SecurityHandler.handle(**
> SecurityHandler.java:216)
>         at org.mortbay.jetty.servlet.**SessionHandler.handle(**
> SessionHandler.java:182)
>         at org.mortbay.jetty.handler.**ContextHandler.handle(**
> ContextHandler.java:766)
>         at org.mortbay.jetty.webapp.**WebAppContext.handle(**
> WebAppContext.java:450)
>         at org.mortbay.jetty.handler.**ContextHandlerCollection.**handle(*
> *ContextHandlerCollection.java:**230)
>         at org.mortbay.jetty.handler.**HandlerCollection.handle(**
> HandlerCollection.java:114)
>         at org.mortbay.jetty.handler.**HandlerWrapper.handle(**
> HandlerWrapper.java:152)
>         at org.mortbay.jetty.Server.**handle(Server.java:326)
>         at org.mortbay.jetty.**HttpConnection.handleRequest(**
> HttpConnection.java:542)
>         at org.mortbay.jetty.**HttpConnection$RequestHandler.**
> headerComplete(HttpConnection.**java:928)
>         at org.mortbay.jetty.HttpParser.**parseNext(HttpParser.java:549)
>         at org.mortbay.jetty.HttpParser.**parseAvailable(HttpParser.**
> java:212)
>         at org.mortbay.jetty.**HttpConnection.handle(**
> HttpConnection.java:404)
>         at org.mortbay.io.nio.**SelectChannelEndPoint.run(**
> SelectChannelEndPoint.java:**410)
>         at org.mortbay.thread.**QueuedThreadPool$PoolThread.**
> run(QueuedThreadPool.java:582)
> [ERROR] Error for /client/api
> com.google.common.util.**concurrent.ExecutionError: java.lang.**NoClassDefFoundError:
> org/jclouds/json/config/**GsonModule$DateAdapter
>         at com.google.common.cache.**LocalCache$Segment.get(**
> LocalCache.java:2261)
>         at com.google.common.cache.**LocalCache.get(LocalCache.**
> java:3995)
>         at com.google.common.cache.**LocalCache.getOrLoad(**
> LocalCache.java:3999)
>         at com.google.common.cache.**LocalCache$LocalLoadingCache.**
> get(LocalCache.java:4869)
>         at com.google.common.cache.**LocalCache$LocalLoadingCache.**
> getUnchecked(LocalCache.java:**4875)
>         at org.apache.whirr.service.**ComputeCache.apply(**
> ComputeCache.java:86)
>         at org.apache.whirr.service.**ComputeCache.apply(**
> ComputeCache.java:78)
>         at org.apache.whirr.actions.**ScriptBasedClusterAction.**execute(*
> *ScriptBasedClusterAction.java:**110)
>         at org.apache.whirr.**ClusterController.**destroyCluster(**
> ClusterController.java:233)
>         at org.apache.whirr.**ClusterController.**destroyCluster(**
> ClusterController.java:226)
>         at org.apache.whirr.**ClusterController.**launchCluster(**
> ClusterController.java:121)
>         at org.apache.whirr.cli.command.**LaunchClusterCommand.run(**
> LaunchClusterCommand.java:69)
>         at org.apache.whirr.cli.command.**LaunchClusterCommand.run(**
> LaunchClusterCommand.java:59)
>         at org.apache.cloudstack.api.**command.user.emr.**
> LaunchClusterCmd.execute(**LaunchClusterCmd.java:63)
>         at com.cloud.api.ApiDispatcher.**dispatch(ApiDispatcher.java:**
> 162)
>         at com.cloud.api.ApiServer.**queueCommand(ApiServer.java:**505)
>         at com.cloud.api.ApiServer.**handleRequest(ApiServer.java:**355)
>         at com.cloud.api.ApiServlet.**processRequest(ApiServlet.**
> java:302)
>         at com.cloud.api.ApiServlet.**doGet(ApiServlet.java:66)
>         at javax.servlet.http.**HttpServlet.service(**
> HttpServlet.java:707)
>         at javax.servlet.http.**HttpServlet.service(**
> HttpServlet.java:820)
>         at org.mortbay.jetty.servlet.**ServletHolder.handle(**
> ServletHolder.java:511)
>         at org.mortbay.jetty.servlet.**ServletHandler.handle(**
> ServletHandler.java:401)
>         at org.mortbay.jetty.security.**SecurityHandler.handle(**
> SecurityHandler.java:216)
>         at org.mortbay.jetty.servlet.**SessionHandler.handle(**
> SessionHandler.java:182)
>         at org.mortbay.jetty.handler.**ContextHandler.handle(**
> ContextHandler.java:766)
>         at org.mortbay.jetty.webapp.**WebAppContext.handle(**
> WebAppContext.java:450)
>         at org.mortbay.jetty.handler.**ContextHandlerCollection.**handle(*
> *ContextHandlerCollection.java:**230)
>         at org.mortbay.jetty.handler.**HandlerCollection.handle(**
> HandlerCollection.java:114)
>         at org.mortbay.jetty.handler.**HandlerWrapper.handle(**
> HandlerWrapper.java:152)
>         at org.mortbay.jetty.Server.**handle(Server.java:326)
>         at org.mortbay.jetty.**HttpConnection.handleRequest(**
> HttpConnection.java:542)
>         at org.mortbay.jetty.**HttpConnection$RequestHandler.**
> headerComplete(HttpConnection.**java:928)
>         at org.mortbay.jetty.HttpParser.**parseNext(HttpParser.java:549)
>         at org.mortbay.jetty.HttpParser.**parseAvailable(HttpParser.**
> java:212)
>         at org.mortbay.jetty.**HttpConnection.handle(**
> HttpConnection.java:404)
>         at org.mortbay.io.nio.**SelectChannelEndPoint.run(**
> SelectChannelEndPoint.java:**410)
>         at org.mortbay.thread.**QueuedThreadPool$PoolThread.**
> run(QueuedThreadPool.java:582)
> Caused by: java.lang.**NoClassDefFoundError: org/jclouds/json/config/**
> GsonModule$DateAdapter
>         at org.jclouds.cloudstack.config.**CloudStackParserModule.**
> configure(**CloudStackParserModule.java:**46)
>         at com.google.inject.**AbstractModule.configure(**
> AbstractModule.java:59)
>         at com.google.inject.spi.**Elements$RecordingBinder.**
> install(Elements.java:223)
>         at com.google.inject.spi.**Elements.getElements(Elements.**
> java:101)
>         at com.google.inject.internal.**InjectorShell$Builder.build(**
> InjectorShell.java:133)
>         at com.google.inject.internal.**InternalInjectorCreator.build(**
> InternalInjectorCreator.java:**103)
>         at com.google.inject.Guice.**createInjector(Guice.java:95)
>         at org.jclouds.ContextBuilder.**buildInjector(ContextBuilder.**
> java:405)
>         at org.jclouds.ContextBuilder.**buildInjector(ContextBuilder.**
> java:329)
>         at org.jclouds.ContextBuilder.**buildView(ContextBuilder.java:**
> 620)
>         at org.jclouds.ContextBuilder.**buildView(ContextBuilder.java:**
> 600)
>         at org.apache.whirr.service.**ComputeCache$1.load(**
> ComputeCache.java:117)
>         at org.apache.whirr.service.**ComputeCache$1.load(**
> ComputeCache.java:96)
>         at com.google.common.cache.**LocalCache$**LoadingValueReference.**
> loadFuture(LocalCache.java:**3594)
>         at com.google.common.cache.**LocalCache$Segment.loadSync(**
> LocalCache.java:2379)
>         at com.google.common.cache.**LocalCache$Segment.**
> lockedGetOrLoad(LocalCache.**java:2342)
>         at com.google.common.cache.**LocalCache$Segment.get(**
> LocalCache.java:2257)
>         ... 37 more
>
>
> The execute method for the lauchClusterCmd is below:
>
>  public void execute()  {
>
>         LaunchClusterResponse response = new LaunchClusterResponse();
>         response.setObjectName("**launchCluster");
>         LaunchClusterCommand command = null;
>         try {
>             command = new LaunchClusterCommand();  //imported from
>  org.apache.whirr.cli.command.**LaunchClusterCommand;
>         } catch (Exception ex) {
>             Logger.getLogger(**LaunchClusterCmd.class.**getName()).log(Level.SEVERE,
> null, ex);
>         }
>         String[] args = new String[2];
>         args[0] = "--config";
>         args[1] = config;
>
>         try {
>             command.run(System.in, System.out, System.err,
> Arrays.asList(args));
>         } catch (Exception ex) {
>             Logger.getLogger(**LaunchClusterCmd.class.**getName()).log(Level.SEVERE,
> null, ex);
>         }
>          response.setResponseName(**getCommandName());
>          output = "successfully launched the cluster.";
>          response.setOutPut(output);
>          this.setResponseObject(**response);
>     }
> Does the  above error indicate that I am missing a couple of class files
> or am I not configuring the JAVA classpath correctly?
>
> Also could someone explain what does this file
> client/target/conf/classpath.**conf do ?
>
>
> Thanks.
>
> Cheers,
> Meng
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message