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

Hi all,

I am adding a plugin to CloudStack. One of the APIs of this plugin
(launchCluster) is to start a haoop cluster on Cloudstack using Whirr. I
included whirr as a dependency to my plugin.

<dependency>
      <groupId>org.apache.whirr</**groupId>
      <artifactId>whirr</artifactId>
      <version>0.8.2</version>
      <type>pom</type>
</dependency>


When I test this api in CloudMonkey I am getting the following error:

 launchCluster config=/home/meng/whirr/dream

HTTP Error 500: java.lang.**NoClassDefFoundError: org/jclouds/json/config/
**GsonModule$DateAdapter

Below is the management server log :

Running on provider cloudstack using identity

h3DKHC9AVlhKnUhpyThMuLhC119QfN**QQ8xhyjbf_**rnu5ZL1QeOWdw7aZRGXVO1VApG6q0a
**K-A-tQRQsZFwnOXQ
ERROR [apache.whirr.**ClusterController] (1859072722@qtp-1275353837-2:)
Unable to start the cluster. Terminating all nodes.
com.google.common.util.**concurrent.ExecutionError: java.lang.**NoClassDefFoundError:
com/google/gson/TypeAdapter
        at com.google.common.cache.**LocalCache$Segment.get(**
LocalCache.java:2261)
        at com.google.common.cache.**LocalCache.get(LocalCache.**
java:3995)
        at com.google.common.cache.**LocalCache.getOrLoad(**
LocalCache.java:3999)
        at com.google.common.cache.**LocalCache$LocalLoadingCache.**
get(LocalCache.java:4869)
        at com.google.common.cache.**LocalCache$LocalLoadingCache.**
getUnchecked(LocalCache.java:**4875)
        at org.apache.whirr.service.**ComputeCache.apply(**
ComputeCache.java:86)
        at org.apache.whirr.service.**ComputeCache.apply(**
ComputeCache.java:78)
at org.apache.whirr.actions.**ScriptBasedClusterAction.**execute(*
*ScriptBasedClusterAction.java:**110)
at org.apache.whirr.**ClusterController.**bootstrapCluster(**
ClusterController.java:137)
        at org.apache.whirr.**ClusterController.**launchCluster(**
ClusterController.java:113)
at org.apache.whirr.cli.command.**LaunchClusterCommand.run(**
LaunchClusterCommand.java:69)
at org.apache.whirr.cli.command.**LaunchClusterCommand.run(**
LaunchClusterCommand.java:59)
        at org.apache.cloudstack.api.**command.user.emr.**
LaunchClusterCmd.execute(**LaunchClusterCmd.java:63)
at com.cloud.api.ApiDispatcher.**dispatch(ApiDispatcher.java:**
162)
at com.cloud.api.ApiServer.**queueCommand(ApiServer.java:**505) at com.cloud.api.ApiServer.**handleRequest(ApiServer.java:**355)
        at com.cloud.api.ApiServlet.**processRequest(ApiServlet.**
java:302)
        at com.cloud.api.ApiServlet.**doGet(ApiServlet.java:66)
        at javax.servlet.http.**HttpServlet.service(**
HttpServlet.java:707)
        at javax.servlet.http.**HttpServlet.service(**
HttpServlet.java:820)
        at org.mortbay.jetty.servlet.**ServletHolder.handle(**
ServletHolder.java:511)
        at org.mortbay.jetty.servlet.**ServletHandler.handle(**
ServletHandler.java:401)
        at org.mortbay.jetty.security.**SecurityHandler.handle(**
SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.**SessionHandler.handle(**
SessionHandler.java:182)
        at org.mortbay.jetty.handler.**ContextHandler.handle(**
ContextHandler.java:766)
        at org.mortbay.jetty.webapp.**WebAppContext.handle(**
WebAppContext.java:450)
at org.mortbay.jetty.handler.**ContextHandlerCollection.**handle(*
*ContextHandlerCollection.java:**230)
        at org.mortbay.jetty.handler.**HandlerCollection.handle(**
HandlerCollection.java:114)
        at org.mortbay.jetty.handler.**HandlerWrapper.handle(**
HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.**handle(Server.java:326)
        at org.mortbay.jetty.**HttpConnection.handleRequest(**
HttpConnection.java:542)
        at org.mortbay.jetty.**HttpConnection$RequestHandler.**
headerComplete(HttpConnection.**java:928)
at org.mortbay.jetty.HttpParser.**parseNext(HttpParser.java:549) at org.mortbay.jetty.HttpParser.**parseAvailable(HttpParser.**
java:212)
        at org.mortbay.jetty.**HttpConnection.handle(**
HttpConnection.java:404)
        at org.mortbay.io.nio.**SelectChannelEndPoint.run(**
SelectChannelEndPoint.java:**410)
        at org.mortbay.thread.**QueuedThreadPool$PoolThread.**
run(QueuedThreadPool.java:582)
Caused by: java.lang.**NoClassDefFoundError: com/google/gson/TypeAdapter
        at java.lang.ClassLoader.**defineClass1(Native Method)
at java.lang.ClassLoader.**defineClass(ClassLoader.java:**791)
        at java.security.**SecureClassLoader.defineClass(**
SecureClassLoader.java:142)
        at java.net.URLClassLoader.**defineClass(URLClassLoader.**
java:449)
at java.net.URLClassLoader.**access$100(URLClassLoader.**java:71)
        at java.net.URLClassLoader$1.run(**URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(**URLClassLoader.java:355)
at java.security.**AccessController.doPrivileged(**Native Method) at java.net.URLClassLoader.**findClass(URLClassLoader.java:**354)
        at org.mortbay.jetty.webapp.**WebAppClassLoader.loadClass(**
WebAppClassLoader.java:392)
        at org.mortbay.jetty.webapp.**WebAppClassLoader.loadClass(**
WebAppClassLoader.java:363)
        at org.jclouds.cloudstack.config.**CloudStackParserModule.**
configure(**CloudStackParserModule.java:**46)
        at com.google.inject.**AbstractModule.configure(**
AbstractModule.java:59)
        at com.google.inject.spi.**Elements$RecordingBinder.**
install(Elements.java:223)
        at com.google.inject.spi.**Elements.getElements(Elements.**
java:101)
at com.google.inject.internal.**InjectorShell$Builder.build(**
InjectorShell.java:133)
at com.google.inject.internal.**InternalInjectorCreator.build(**
InternalInjectorCreator.java:**103)
        at com.google.inject.Guice.**createInjector(Guice.java:95)
at org.jclouds.ContextBuilder.**buildInjector(ContextBuilder.**
java:405)
at org.jclouds.ContextBuilder.**buildInjector(ContextBuilder.**
java:329)
at org.jclouds.ContextBuilder.**buildView(ContextBuilder.java:**
620)
at org.jclouds.ContextBuilder.**buildView(ContextBuilder.java:**
600)
        at org.apache.whirr.service.**ComputeCache$1.load(**
ComputeCache.java:117)
        at org.apache.whirr.service.**ComputeCache$1.load(**
ComputeCache.java:96)
at com.google.common.cache.**LocalCache$**LoadingValueReference.**
loadFuture(LocalCache.java:**3594)
        at com.google.common.cache.**LocalCache$Segment.loadSync(**
LocalCache.java:2379)
        at com.google.common.cache.**LocalCache$Segment.**
lockedGetOrLoad(LocalCache.**java:2342)
        at com.google.common.cache.**LocalCache$Segment.get(**
LocalCache.java:2257)
        ... 36 more
Caused by: java.lang.**ClassNotFoundException: com.google.gson.TypeAdapter
        at org.codehaus.plexus.**classworlds.strategy.**
SelfFirstStrategy.loadClass(**SelfFirstStrategy.java:50)
        at org.codehaus.plexus.**classworlds.realm.ClassRealm.**
loadClass(ClassRealm.java:244)
        at org.codehaus.plexus.**classworlds.realm.ClassRealm.**
loadClass(ClassRealm.java:230)
        at org.mortbay.jetty.webapp.**WebAppClassLoader.loadClass(**
WebAppClassLoader.java:401)
        at org.mortbay.jetty.webapp.**WebAppClassLoader.loadClass(**
WebAppClassLoader.java:363)
        at java.lang.ClassLoader.**defineClass1(Native Method)
        ... 63 more
INFO [whirr.state.**ClusterStateStore] (1859072722@qtp-1275353837-2:)
Unable to load cluster state, assuming it has no running nodes.
java.io.FileNotFoundException: /home/meng/.whirr/hadoop/**instances (No
such file or directory)
        at java.io.FileInputStream.open(**Native Method)
at java.io.FileInputStream.<init>**(FileInputStream.java:138)
        at com.google.common.io.Files$**FileByteSource.openStream(**
Files.java:124)
        at com.google.common.io.Files$**FileByteSource.openStream(**
Files.java:114)
        at com.google.common.io.**ByteSource$AsCharSource.**
openStream(ByteSource.java:**287)
        at com.google.common.io.**CharStreams$3.getInput(**
CharStreams.java:508)
        at com.google.common.io.**CharStreams$3.getInput(**
CharStreams.java:505)
        at com.google.common.io.**CharStreams.readLines(**
CharStreams.java:319)
        at com.google.common.io.Files.**readLines(Files.java:690)
        at org.apache.whirr.state.**FileClusterStateStore.load(**
FileClusterStateStore.java:55)
at org.apache.whirr.state.**ClusterStateStore.**tryLoadOrEmpty(**
ClusterStateStore.java:59)
        at org.apache.whirr.**ClusterController.**destroyCluster(**
ClusterController.java:226)
        at org.apache.whirr.**ClusterController.**launchCluster(**
ClusterController.java:121)
at org.apache.whirr.cli.command.**LaunchClusterCommand.run(**
LaunchClusterCommand.java:69)
at org.apache.whirr.cli.command.**LaunchClusterCommand.run(**
LaunchClusterCommand.java:59)
        at org.apache.cloudstack.api.**command.user.emr.**
LaunchClusterCmd.execute(**LaunchClusterCmd.java:63)
at com.cloud.api.ApiDispatcher.**dispatch(ApiDispatcher.java:**
162)
at com.cloud.api.ApiServer.**queueCommand(ApiServer.java:**505) at com.cloud.api.ApiServer.**handleRequest(ApiServer.java:**355)
        at com.cloud.api.ApiServlet.**processRequest(ApiServlet.**
java:302)
        at com.cloud.api.ApiServlet.**doGet(ApiServlet.java:66)
        at javax.servlet.http.**HttpServlet.service(**
HttpServlet.java:707)
        at javax.servlet.http.**HttpServlet.service(**
HttpServlet.java:820)
        at org.mortbay.jetty.servlet.**ServletHolder.handle(**
ServletHolder.java:511)
        at org.mortbay.jetty.servlet.**ServletHandler.handle(**
ServletHandler.java:401)
        at org.mortbay.jetty.security.**SecurityHandler.handle(**
SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.**SessionHandler.handle(**
SessionHandler.java:182)
        at org.mortbay.jetty.handler.**ContextHandler.handle(**
ContextHandler.java:766)
        at org.mortbay.jetty.webapp.**WebAppContext.handle(**
WebAppContext.java:450)
at org.mortbay.jetty.handler.**ContextHandlerCollection.**handle(*
*ContextHandlerCollection.java:**230)
        at org.mortbay.jetty.handler.**HandlerCollection.handle(**
HandlerCollection.java:114)
        at org.mortbay.jetty.handler.**HandlerWrapper.handle(**
HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.**handle(Server.java:326)
        at org.mortbay.jetty.**HttpConnection.handleRequest(**
HttpConnection.java:542)
        at org.mortbay.jetty.**HttpConnection$RequestHandler.**
headerComplete(HttpConnection.**java:928)
at org.mortbay.jetty.HttpParser.**parseNext(HttpParser.java:549) at org.mortbay.jetty.HttpParser.**parseAvailable(HttpParser.**
java:212)
        at org.mortbay.jetty.**HttpConnection.handle(**
HttpConnection.java:404)
        at org.mortbay.io.nio.**SelectChannelEndPoint.run(**
SelectChannelEndPoint.java:**410)
        at org.mortbay.thread.**QueuedThreadPool$PoolThread.**
run(QueuedThreadPool.java:582)
[ERROR] Error for /client/api
com.google.common.util.**concurrent.ExecutionError: java.lang.**NoClassDefFoundError:
org/jclouds/json/config/**GsonModule$DateAdapter
        at com.google.common.cache.**LocalCache$Segment.get(**
LocalCache.java:2261)
        at com.google.common.cache.**LocalCache.get(LocalCache.**
java:3995)
        at com.google.common.cache.**LocalCache.getOrLoad(**
LocalCache.java:3999)
        at com.google.common.cache.**LocalCache$LocalLoadingCache.**
get(LocalCache.java:4869)
        at com.google.common.cache.**LocalCache$LocalLoadingCache.**
getUnchecked(LocalCache.java:**4875)
        at org.apache.whirr.service.**ComputeCache.apply(**
ComputeCache.java:86)
        at org.apache.whirr.service.**ComputeCache.apply(**
ComputeCache.java:78)
at org.apache.whirr.actions.**ScriptBasedClusterAction.**execute(*
*ScriptBasedClusterAction.java:**110)
        at org.apache.whirr.**ClusterController.**destroyCluster(**
ClusterController.java:233)
        at org.apache.whirr.**ClusterController.**destroyCluster(**
ClusterController.java:226)
        at org.apache.whirr.**ClusterController.**launchCluster(**
ClusterController.java:121)
at org.apache.whirr.cli.command.**LaunchClusterCommand.run(**
LaunchClusterCommand.java:69)
at org.apache.whirr.cli.command.**LaunchClusterCommand.run(**
LaunchClusterCommand.java:59)
        at org.apache.cloudstack.api.**command.user.emr.**
LaunchClusterCmd.execute(**LaunchClusterCmd.java:63)
at com.cloud.api.ApiDispatcher.**dispatch(ApiDispatcher.java:**
162)
at com.cloud.api.ApiServer.**queueCommand(ApiServer.java:**505) at com.cloud.api.ApiServer.**handleRequest(ApiServer.java:**355)
        at com.cloud.api.ApiServlet.**processRequest(ApiServlet.**
java:302)
        at com.cloud.api.ApiServlet.**doGet(ApiServlet.java:66)
        at javax.servlet.http.**HttpServlet.service(**
HttpServlet.java:707)
        at javax.servlet.http.**HttpServlet.service(**
HttpServlet.java:820)
        at org.mortbay.jetty.servlet.**ServletHolder.handle(**
ServletHolder.java:511)
        at org.mortbay.jetty.servlet.**ServletHandler.handle(**
ServletHandler.java:401)
        at org.mortbay.jetty.security.**SecurityHandler.handle(**
SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.**SessionHandler.handle(**
SessionHandler.java:182)
        at org.mortbay.jetty.handler.**ContextHandler.handle(**
ContextHandler.java:766)
        at org.mortbay.jetty.webapp.**WebAppContext.handle(**
WebAppContext.java:450)
at org.mortbay.jetty.handler.**ContextHandlerCollection.**handle(*
*ContextHandlerCollection.java:**230)
        at org.mortbay.jetty.handler.**HandlerCollection.handle(**
HandlerCollection.java:114)
        at org.mortbay.jetty.handler.**HandlerWrapper.handle(**
HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.**handle(Server.java:326)
        at org.mortbay.jetty.**HttpConnection.handleRequest(**
HttpConnection.java:542)
        at org.mortbay.jetty.**HttpConnection$RequestHandler.**
headerComplete(HttpConnection.**java:928)
at org.mortbay.jetty.HttpParser.**parseNext(HttpParser.java:549) at org.mortbay.jetty.HttpParser.**parseAvailable(HttpParser.**
java:212)
        at org.mortbay.jetty.**HttpConnection.handle(**
HttpConnection.java:404)
        at org.mortbay.io.nio.**SelectChannelEndPoint.run(**
SelectChannelEndPoint.java:**410)
        at org.mortbay.thread.**QueuedThreadPool$PoolThread.**
run(QueuedThreadPool.java:582)
Caused by: java.lang.**NoClassDefFoundError: org/jclouds/json/config/**
GsonModule$DateAdapter
        at org.jclouds.cloudstack.config.**CloudStackParserModule.**
configure(**CloudStackParserModule.java:**46)
        at com.google.inject.**AbstractModule.configure(**
AbstractModule.java:59)
        at com.google.inject.spi.**Elements$RecordingBinder.**
install(Elements.java:223)
        at com.google.inject.spi.**Elements.getElements(Elements.**
java:101)
at com.google.inject.internal.**InjectorShell$Builder.build(**
InjectorShell.java:133)
at com.google.inject.internal.**InternalInjectorCreator.build(**
InternalInjectorCreator.java:**103)
        at com.google.inject.Guice.**createInjector(Guice.java:95)
at org.jclouds.ContextBuilder.**buildInjector(ContextBuilder.**
java:405)
at org.jclouds.ContextBuilder.**buildInjector(ContextBuilder.**
java:329)
at org.jclouds.ContextBuilder.**buildView(ContextBuilder.java:**
620)
at org.jclouds.ContextBuilder.**buildView(ContextBuilder.java:**
600)
        at org.apache.whirr.service.**ComputeCache$1.load(**
ComputeCache.java:117)
        at org.apache.whirr.service.**ComputeCache$1.load(**
ComputeCache.java:96)
at com.google.common.cache.**LocalCache$**LoadingValueReference.**
loadFuture(LocalCache.java:**3594)
        at com.google.common.cache.**LocalCache$Segment.loadSync(**
LocalCache.java:2379)
        at com.google.common.cache.**LocalCache$Segment.**
lockedGetOrLoad(LocalCache.**java:2342)
        at com.google.common.cache.**LocalCache$Segment.get(**
LocalCache.java:2257)
        ... 37 more


The execute method for the lauchClusterCmd is below:

 public void execute()  {

LaunchClusterResponse response = new LaunchClusterResponse();
        response.setObjectName("**launchCluster");
        LaunchClusterCommand command = null;
        try {
            command = new LaunchClusterCommand();  //imported from
 org.apache.whirr.cli.command.**LaunchClusterCommand;
        } catch (Exception ex) {
Logger.getLogger(**LaunchClusterCmd.class.**getName()).log(Level.SEVERE,
null, ex);
        }
        String[] args = new String[2];
        args[0] = "--config";
        args[1] = config;

        try {
            command.run(System.in, System.out, System.err,
Arrays.asList(args));
        } catch (Exception ex) {
Logger.getLogger(**LaunchClusterCmd.class.**getName()).log(Level.SEVERE,
null, ex);
        }
         response.setResponseName(**getCommandName());
         output = "successfully launched the cluster.";
         response.setOutPut(output);
         this.setResponseObject(**response);
    }
Does the above error indicate that I am missing a couple of class files
or am I not configuring the JAVA classpath correctly?

Also could someone explain what does this file
client/target/conf/classpath.**conf do ?


Thanks.

Cheers,
Meng


Reply via email to