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 <[email protected]> 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 >
