zerocode icon indicating copy to clipboard operation
zerocode copied to clipboard

Unable to provision, see the following errors:

Open abinashb414 opened this issue 3 years ago • 11 comments

Hi team, I am getting the below error while executing the test case.

Unable to provision, see the following errors:

  1. Error injecting constructor, java.lang.NoClassDefFoundError: org/jsmart/zerocode/core/di/provider/GsonSerDeProvider$KafkaHeadersAdapter at org.jsmart.zerocode.core.kafka.send.KafkaSender.(KafkaSender.java:41) at org.jsmart.zerocode.core.kafka.send.KafkaSender.class(KafkaSender.java:41) while locating org.jsmart.zerocode.core.kafka.send.KafkaSender for field at org.jsmart.zerocode.core.kafka.client.BasicKafkaClient.sender(BasicKafkaClient.java:10) while locating org.jsmart.zerocode.core.kafka.client.BasicKafkaClient for field at org.jsmart.zerocode.core.engine.executor.ApiServiceExecutorImpl.kafkaClient(ApiServiceExecutorImpl.java:12) while locating org.jsmart.zerocode.core.engine.executor.ApiServiceExecutorImpl while locating org.jsmart.zerocode.core.engine.executor.ApiServiceExecutor

We have started api automation using zero code and this is a multi module gradle project.

abinashb414 avatar Feb 23 '21 11:02 abinashb414

Greetings, please provide minimal reproducible example

sparrowV avatar Feb 23 '21 14:02 sparrowV

We have a multi module gradle project for our application which is build using gradle 2.14. And inside that we have created one more module for our component testing(api) In our project we have created one custom framework using zero code of version 1.3.20 and there we created one customised class(E2eJunitRunner) by extending the ZeroCodeUnitRunner class by overriding getMainModuleInjector method (to use customised properties file) We are running with @Runwith annotation(defining in class level) and passing E2eJunitRunner class. While executing test case getting the above mentioned error, but no where we have used kafka in our project.

abinashb414 avatar Feb 24 '21 16:02 abinashb414

@abinashb414 well , in getMainModuleInjector it also injects Kafka module. If you want to point to your specific property file, you can use @TargetEnv annotation( you don't have to overide anything).

sparrowV avatar Feb 25 '21 06:02 sparrowV

@sparrowV thanks for the update, definitely I will go through that and post that will update here. If there is any reference (sample code where they have used this annotation) available for @TargetEnv please provide, that may be helpful for us.

abinashb414 avatar Feb 25 '21 07:02 abinashb414

@abinashb414 You can check out this. You put the @TargetEnv annotation on top of the test class and specify the property file, that you created and placed in resources folder

sparrowV avatar Feb 25 '21 07:02 sparrowV

@sparrowV I have tried this but still getting the same error, my test class is as below

import org.jsmart.zerocode.core.domain.JsonTestCase; import org.jsmart.zerocode.core.domain.TargetEnv; import org.jsmart.zerocode.core.runner.ZeroCodeUnitRunner; import org.junit.Test; import org.junit.runner.RunWith;

@TargetEnv("application-local.properties") @RunWith(ZeroCodeUnitRunner.class) public class ConsolidetedPlanApi {

@Test
@JsonTestCase("plan/consolidatePlan.json")
public void consolidatePlanTest() {

}

}

abinashb414 avatar Feb 25 '21 09:02 abinashb414

JsonTestCase is deprecated, please use @Scenario . Can you upgrade to the latest version of ZeroCode?

sparrowV avatar Feb 25 '21 09:02 sparrowV

Using @Scenario also i have tried earlier, we were using 1.3.20 version now upgraded to 1.3.27. getting below error now

Unable to provision, see the following errors:

  1. Error injecting constructor, java.lang.NoClassDefFoundError: com/google/gson/TypeAdapter at org.jsmart.zerocode.core.kafka.send.KafkaSender.(KafkaSender.java:45) at org.jsmart.zerocode.core.kafka.send.KafkaSender.class(KafkaSender.java:45) while locating org.jsmart.zerocode.core.kafka.send.KafkaSender for field at org.jsmart.zerocode.core.kafka.client.BasicKafkaClient.sender(BasicKafkaClient.java:11) while locating org.jsmart.zerocode.core.kafka.client.ZerocodeCustomKafkaClient while locating org.jsmart.zerocode.core.kafka.client.BasicKafkaClient for field at org.jsmart.zerocode.core.engine.executor.ApiServiceExecutorImpl.kafkaClient(ApiServiceExecutorImpl.java:13) while locating org.jsmart.zerocode.core.engine.executor.ApiServiceExecutorImpl

abinashb414 avatar Feb 25 '21 10:02 abinashb414

@abinashb414 please post the full stack trace

sparrowV avatar Mar 11 '21 05:03 sparrowV

Unable to provision, see the following errors:

  1. Error injecting constructor, java.lang.NoClassDefFoundError: com/google/gson/TypeAdapter at org.jsmart.zerocode.core.kafka.send.KafkaSender.(KafkaSender.java:45) at org.jsmart.zerocode.core.kafka.send.KafkaSender.class(KafkaSender.java:45) while locating org.jsmart.zerocode.core.kafka.send.KafkaSender for field at org.jsmart.zerocode.core.kafka.client.BasicKafkaClient.sender(BasicKafkaClient.java:11) while locating org.jsmart.zerocode.core.kafka.client.BasicKafkaClient for field at org.jsmart.zerocode.core.engine.executor.ApiServiceExecutorImpl.kafkaClient(ApiServiceExecutorImpl.java:13) while locating org.jsmart.zerocode.core.engine.executor.ApiServiceExecutorImpl while locating org.jsmart.zerocode.core.engine.executor.ApiServiceExecutor for field at org.jsmart.zerocode.core.runner.ZeroCodeMultiStepsScenarioRunnerImpl.apiExecutor(ZeroCodeMultiStepsScenarioRunnerImpl.java:43) at org.jsmart.zerocode.core.runner.ZeroCodeMultiStepsScenarioRunnerImpl.class(ZeroCodeMultiStepsScenarioRunnerImpl.java:43) while locating org.jsmart.zerocode.core.runner.ZeroCodeMultiStepsScenarioRunnerImpl while locating org.jsmart.zerocode.core.runner.ZeroCodeMultiStepsScenarioRunner

1 error com.google.inject.ProvisionException: Unable to provision, see the following errors:

  1. Error injecting constructor, java.lang.NoClassDefFoundError: com/google/gson/TypeAdapter at org.jsmart.zerocode.core.kafka.send.KafkaSender.(KafkaSender.java:45) at org.jsmart.zerocode.core.kafka.send.KafkaSender.class(KafkaSender.java:45) while locating org.jsmart.zerocode.core.kafka.send.KafkaSender for field at org.jsmart.zerocode.core.kafka.client.BasicKafkaClient.sender(BasicKafkaClient.java:11) while locating org.jsmart.zerocode.core.kafka.client.BasicKafkaClient for field at org.jsmart.zerocode.core.engine.executor.ApiServiceExecutorImpl.kafkaClient(ApiServiceExecutorImpl.java:13) while locating org.jsmart.zerocode.core.engine.executor.ApiServiceExecutorImpl while locating org.jsmart.zerocode.core.engine.executor.ApiServiceExecutor for field at org.jsmart.zerocode.core.runner.ZeroCodeMultiStepsScenarioRunnerImpl.apiExecutor(ZeroCodeMultiStepsScenarioRunnerImpl.java:43) at org.jsmart.zerocode.core.runner.ZeroCodeMultiStepsScenarioRunnerImpl.class(ZeroCodeMultiStepsScenarioRunnerImpl.java:43) while locating org.jsmart.zerocode.core.runner.ZeroCodeMultiStepsScenarioRunnerImpl while locating org.jsmart.zerocode.core.runner.ZeroCodeMultiStepsScenarioRunner

1 error at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1025) at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051) at org.jsmart.zerocode.core.runner.ZeroCodeUnitRunner.getInjectedMultiStepsRunner(ZeroCodeUnitRunner.java:147) at org.jsmart.zerocode.core.runner.ZeroCodeUnitRunner.createZeroCodeMultiStepRunner(ZeroCodeUnitRunner.java:265) at org.jsmart.zerocode.core.runner.ZeroCodeUnitRunner.(ZeroCodeUnitRunner.java:95) at com.flipkart.zeta.testconfig.E2eJunitRunner.(E2eJunitRunner.java:32) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104) at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:86) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:57) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:66) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) at com.sun.proxy.$Proxy2.processTestClass(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:109) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:377) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54) at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NoClassDefFoundError: com/google/gson/TypeAdapter at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at org.jsmart.zerocode.core.di.provider.GsonSerDeProvider.get(GsonSerDeProvider.java:23) at org.jsmart.zerocode.core.kafka.send.KafkaSender.(KafkaSender.java:56) at org.jsmart.zerocode.core.kafka.send.KafkaSender$$FastClassByGuice$$dd3b6378.newInstance() at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40) at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61) at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:105) at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103) at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145) at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41) at com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:54) at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:132) at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:114) at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) at com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:54) at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:132) at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:114) at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56) at com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:54) at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:132) at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:114) at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103) at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145) at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41) at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56) at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092) at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012) ... 41 more Caused by: java.lang.ClassNotFoundException: com.google.gson.TypeAdapter at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ... 91 more

com.ekart.citylogistics.component.tms.tests.plan.ConsolidatePlanTest > initializationError FAILED com.google.inject.ProvisionException Caused by: java.lang.NoClassDefFoundError Caused by: java.lang.ClassNotFoundException

abinashb414 avatar Mar 18 '21 04:03 abinashb414

@abinashb414 Can you manually add the google Gson dependency in your project? Also, It would be great if you create a sample project, where this error happens and we will run that project locally to see it in action.

sparrowV avatar Mar 18 '21 05:03 sparrowV