You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@whirr.apache.org by "Han,Meng" <me...@ufl.edu> on 2013/09/11 04:46:57 UTC

java.lang.NoClassDefFoundError

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 
h3DKHC9AVlhKnUhpyThMuLhC119QfNQQ8xhyjbf_rnu5ZL1QeOWdw7aZRGXVO1VApG6q0aK-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

Re: java.lang.NoClassDefFoundError

Posted by "Han,Meng" <me...@ufl.edu>.
Andrei,

I modified the pom file as follows:

<project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
   http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <artifactId>cloud-plugin-api-emr</artifactId>
   <name>Apache CloudStack Plugin - API Elastic Map Reduce</name>
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
     <version>4.1.1</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
     <dependency>
       <groupId>org.apache.cloudstack</groupId>
       <artifactId>cloud-api</artifactId>
       <version>${project.version}</version>
     </dependency>
    <dependency>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloud-utils</artifactId>
         <version>${project.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.whirr</groupId>
       <artifactId>whirr-cli</artifactId>
       <version>0.9.0-SNAPSHOT</version>
       <type>jar</type>
     </dependency>
   </dependencies>
   <build>
     <defaultGoal>install</defaultGoal>
     <sourceDirectory>src</sourceDirectory>
     <testSourceDirectory>test</testSourceDirectory>
     <testResources>
       <testResource>
  <directory>test/resources</directory>
       </testResource>
     </testResources>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
           <argLine>-Xmx1024m</argLine>
           <excludes>
             
<exclude>org/apache/cloudstack/discovery/integration/*</exclude>
           </excludes>
         </configuration>
       </plugin>
     </plugins>
   </build>
</project>

The problem is still there.

I installed whirr 0.9.0-SNAPSHOT  on my desktop and check 
/home/meng/whirr/cli/target/lib, the guava version is guava-14.0.1.jar

then I went to /home/meng/cloudstack/api/target/dependency, the guava 
version there is guava-14.0-rc1.jar

It looks true that cloud-api requires a specific version of Guava. Do 
you know how I can solve this situation? The cloudstack api pom file 
does not include guava as an explicit dependency.

I have a class now, I will come back at 3.

Thanks again Andrei!

Best Regards,
Meng




On Wed, 11 Sep 2013 18:35:48 +0300, Andrei Savu wrote:
> Do not add jclouds as an explicit dependency - maven will find the 
> right
> one as a transitive dependency of Whirr. That will solve your problem
> unless cloud-api requires a specific (older) version of Guava.
>
> -- Andrei Savu / axemblr.com
>
>
> On Wed, Sep 11, 2013 at 6:31 PM, Han,Meng <me...@ufl.edu> wrote:
>
>> Hi Andrei,
>>
>> Thanks for your reply. The complete pom file for this plugin is 
>> below.
>>
>> <project 
>> xmlns="http://maven.apache.**org/POM/4.0.0<http://maven.apache.org/POM/4.0.0>
>> "
>>          
>> xmlns:xsi="http://www.w3.org/**2001/XMLSchema-instance<http://www.w3.org/2001/XMLSchema-instance>
>> "
>>          
>> xsi:schemaLocation="http://**maven.apache.org/POM/4.0.0<http://maven.apache.org/POM/4.0.0>
>>   
>> http://maven.apache.org/xsd/**maven-4.0.0.xsd<http://maven.apache.org/xsd/maven-4.0.0.xsd>
>> ">
>>   <modelVersion>4.0.0</**modelVersion>
>>   <artifactId>cloud-plugin-api-**emr</artifactId>
>>   <name>Apache CloudStack Plugin - API Elastic Map Reduce</name>
>>   <parent>
>>     <groupId>org.apache.**cloudstack</groupId>
>>     <artifactId>cloudstack-**plugins</artifactId>
>>     <version>4.1.1</version>
>>     <relativePath>../../pom.xml</**relativePath>
>>   </parent>
>>   <dependencies>
>>     <dependency>
>>       <groupId>org.apache.**cloudstack</groupId>
>>       <artifactId>cloud-api</**artifactId>
>>       <version>${project.version}</**version>
>>     </dependency>
>>     <dependency>
>>       <groupId>org.apache.**cloudstack</groupId>
>>       <artifactId>cloud-utils</**artifactId>
>>       <version>${project.version}</**version>
>>     </dependency>
>>
>> <dependency>
>>       <groupId>org.apache.whirr</**groupId>
>>       <artifactId>whirr</artifactId>
>>       <version>0.8.2</version>
>>       <type>pom</type>
>>        </dependency>
>>       <dependency>
>>           <groupId>org.apache.jclouds</**groupId>
>>           <artifactId>jclouds-all</**artifactId>
>>           <version>1.6.1-incubating</**version>
>>      </dependency>
>>   </dependencies>
>>   <build>
>>     <defaultGoal>install</**defaultGoal>
>>     <sourceDirectory>src</**sourceDirectory>
>>     <testSourceDirectory>test</**testSourceDirectory>
>>     <testResources>
>>       <testResource>
>>         <directory>test/resources</**directory>
>>       </testResource>
>>     </testResources>
>>     <plugins>
>>       <plugin>
>>         <groupId>org.apache.maven.**plugins</groupId>
>>         <artifactId>maven-surefire-**plugin</artifactId>
>>         <configuration>
>>           <argLine>-Xmx1024m</argLine>
>>           <excludes>
>>             <exclude>org/apache/**cloudstack/discovery/**
>> integration/*</exclude>
>>           </excludes>
>>         </configuration>
>>       </plugin>
>>     </plugins>
>>   </build>
>> </project>
>>
>>
>>
>> On Wed, 11 Sep 2013 07:52:27 +0300, Andrei Savu wrote:
>>
>>> 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 <me...@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
>>>>
>>>>
>>


Re: java.lang.NoClassDefFoundError

Posted by Andrei Savu <sa...@gmail.com>.
Do not add jclouds as an explicit dependency - maven will find the right
one as a transitive dependency of Whirr. That will solve your problem
unless cloud-api requires a specific (older) version of Guava.

-- Andrei Savu / axemblr.com


On Wed, Sep 11, 2013 at 6:31 PM, Han,Meng <me...@ufl.edu> wrote:

> Hi Andrei,
>
> Thanks for your reply. The complete pom file for this plugin is below.
>
> <project xmlns="http://maven.apache.**org/POM/4.0.0<http://maven.apache.org/POM/4.0.0>
> "
>          xmlns:xsi="http://www.w3.org/**2001/XMLSchema-instance<http://www.w3.org/2001/XMLSchema-instance>
> "
>          xsi:schemaLocation="http://**maven.apache.org/POM/4.0.0<http://maven.apache.org/POM/4.0.0>
>   http://maven.apache.org/xsd/**maven-4.0.0.xsd<http://maven.apache.org/xsd/maven-4.0.0.xsd>
> ">
>   <modelVersion>4.0.0</**modelVersion>
>   <artifactId>cloud-plugin-api-**emr</artifactId>
>   <name>Apache CloudStack Plugin - API Elastic Map Reduce</name>
>   <parent>
>     <groupId>org.apache.**cloudstack</groupId>
>     <artifactId>cloudstack-**plugins</artifactId>
>     <version>4.1.1</version>
>     <relativePath>../../pom.xml</**relativePath>
>   </parent>
>   <dependencies>
>     <dependency>
>       <groupId>org.apache.**cloudstack</groupId>
>       <artifactId>cloud-api</**artifactId>
>       <version>${project.version}</**version>
>     </dependency>
>     <dependency>
>       <groupId>org.apache.**cloudstack</groupId>
>       <artifactId>cloud-utils</**artifactId>
>       <version>${project.version}</**version>
>     </dependency>
>
> <dependency>
>       <groupId>org.apache.whirr</**groupId>
>       <artifactId>whirr</artifactId>
>       <version>0.8.2</version>
>       <type>pom</type>
>        </dependency>
>       <dependency>
>           <groupId>org.apache.jclouds</**groupId>
>           <artifactId>jclouds-all</**artifactId>
>           <version>1.6.1-incubating</**version>
>      </dependency>
>   </dependencies>
>   <build>
>     <defaultGoal>install</**defaultGoal>
>     <sourceDirectory>src</**sourceDirectory>
>     <testSourceDirectory>test</**testSourceDirectory>
>     <testResources>
>       <testResource>
>         <directory>test/resources</**directory>
>       </testResource>
>     </testResources>
>     <plugins>
>       <plugin>
>         <groupId>org.apache.maven.**plugins</groupId>
>         <artifactId>maven-surefire-**plugin</artifactId>
>         <configuration>
>           <argLine>-Xmx1024m</argLine>
>           <excludes>
>             <exclude>org/apache/**cloudstack/discovery/**
> integration/*</exclude>
>           </excludes>
>         </configuration>
>       </plugin>
>     </plugins>
>   </build>
> </project>
>
>
>
> On Wed, 11 Sep 2013 07:52:27 +0300, Andrei Savu wrote:
>
>> 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 <me...@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
>>>
>>>
>

Re: java.lang.NoClassDefFoundError

Posted by "Han,Meng" <me...@ufl.edu>.
Hi Andrei,

Thanks for your reply. The complete pom file for this plugin is below.

<project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
   http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <artifactId>cloud-plugin-api-emr</artifactId>
   <name>Apache CloudStack Plugin - API Elastic Map Reduce</name>
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
     <version>4.1.1</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
     <dependency>
       <groupId>org.apache.cloudstack</groupId>
       <artifactId>cloud-api</artifactId>
       <version>${project.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.cloudstack</groupId>
       <artifactId>cloud-utils</artifactId>
       <version>${project.version}</version>
     </dependency>
<dependency>
       <groupId>org.apache.whirr</groupId>
       <artifactId>whirr</artifactId>
       <version>0.8.2</version>
       <type>pom</type>
        </dependency>
       <dependency>
           <groupId>org.apache.jclouds</groupId>
           <artifactId>jclouds-all</artifactId>
           <version>1.6.1-incubating</version>
      </dependency>
   </dependencies>
   <build>
     <defaultGoal>install</defaultGoal>
     <sourceDirectory>src</sourceDirectory>
     <testSourceDirectory>test</testSourceDirectory>
     <testResources>
       <testResource>
         <directory>test/resources</directory>
       </testResource>
     </testResources>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
           <argLine>-Xmx1024m</argLine>
           <excludes>
             
<exclude>org/apache/cloudstack/discovery/integration/*</exclude>
           </excludes>
         </configuration>
       </plugin>
     </plugins>
   </build>
</project>


On Wed, 11 Sep 2013 07:52:27 +0300, Andrei Savu wrote:
> 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 <me...@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
>>


Re: java.lang.NoClassDefFoundError

Posted by Andrei Savu <sa...@gmail.com>.
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 <me...@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
>

Re: java.lang.NoClassDefFoundError

Posted by "SuichII, Christopher" <Ch...@netapp.com>.
Check the maven dependency tree of CloudStack with and without your plugin using 'mvn dependency:tree'. This will show the maven dependencies and transitive dependencies. I ran in to issues like this when I had a transitive dependency that pulled in a newer or older version of a pre-existing dependency of CloudStack.

-Chris

-- 
Chris Suich
chris.suich@netapp.com
NetApp Software Engineer
Data Center Platforms – Cloud Solutions
Citrix, Cisco & Red Hat

On Sep 10, 2013, at 10:46 PM, "Han,Meng" <me...@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 h3DKHC9AVlhKnUhpyThMuLhC119QfNQQ8xhyjbf_rnu5ZL1QeOWdw7aZRGXVO1VApG6q0aK-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