API incompatibility error seen while executing Gatling sample project

Hi,
I downloaded the Maven demo project from github: https://github.com/gatling/gatling-maven-plugin-demo

Ran it in terminal: mvn gatling:execute

Following error is seen with build failure:

[WARNING] Error injecting: io.gatling.mojo.GatlingMojo

java.lang.TypeNotPresentException: Type io.gatling.mojo.GatlingMojo not present

at org.eclipse.sisu.space.URLClassSpace.loadClass(URLClassSpace.java:115)

at org.eclipse.sisu.space.NamedClass.load(NamedClass.java:46)

at org.eclipse.sisu.space.AbstractDeferredClass.get(AbstractDeferredClass.java:48)

at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86)

at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:54)

at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)

at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)

at org.eclipse.sisu.bean.BeanScheduler$Activator.onProvision(BeanScheduler.java:176)

at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)

at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)

at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)

at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:46)

at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1009)

at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1059)

at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1005)

at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:36)

at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:81)

at org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51)

at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:263)

at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:255)

at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:546)

at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:121)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)

at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)

at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)

at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)

at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)

at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)

at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)

at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)

at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)

at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)

at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)

at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

Caused by: java.lang.UnsupportedClassVersionError: io/gatling/mojo/GatlingMojo : Unsupported major.minor version 52.0

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:800)

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.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401)

at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)

at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)

at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)

at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)

at org.eclipse.sisu.space.URLClassSpace.loadClass(URLClassSpace.java:107)

… 42 more

[INFO] ------------------------------------------------------------------------

[INFO] BUILD FAILURE

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 2.454 s

[INFO] Finished at: 2017-05-01T10:29:21-07:00

[INFO] Final Memory: 11M/245M

[INFO] ------------------------------------------------------------------------

[ERROR] Failed to execute goal io.gatling:gatling-maven-plugin:2.2.4:execute (default-cli) on project gatling-maven-plugin-demo: Execution default-cli of goal io.gatling:gatling-maven-plugin:2.2.4:execute failed: Unable to load the mojo ‘execute’ in the plugin ‘io.gatling:gatling-maven-plugin:2.2.4’ due to an API incompatibility: org.codehaus.plexus.component.repository.exception.ComponentLookupException: io/gatling/mojo/GatlingMojo : Unsupported major.minor version 52.0

Could someone please help me figure out how to resolve this?

  1. Is your JAVA_HOME set?

  2. If so, what’s the version of Java? Run “java -version”. You require 1.8.

Cheers,
Barry

Barry,
Yes, it is set and the version is 1.8

$ java -version

java version “1.8.0_131”

Java™ SE Runtime Environment (build 1.8.0_131-b11)

Java HotSpot™ 64-Bit Server VM (build 25.131-b11, mixed mode)

$ echo $JAVA_HOME

/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home

Quickly span up a Centos VM with OpenJDK version 1.8.0_131 and cloned the repo.

It runs fine for me so looks like something isn’t right with your machine as opposed to the sample project.

Seems like I didn’t set up JAVA_HOME in .bash_profile correctly. Worked fine after resolving it.