Closed digvijay72 closed 2 years ago
Hi, I am also encountering a similar error when using Serenity with Serenity-Rest Assured. Any luck fixing it?
Can you provide a sample project?
Hi @wakaleo, thanks for your reply. I have provided a sample project here
To add on, I am running Serenity with JBehave, as it mirrors my actual project setup. The initialization error is replicable in the sample project.
Hi @wakaleo, were you able to replicate the issue via the sample project?
I had a quick look at your project now - try updating your dependencies to serenity-* 2.2.1
Hi @wakaleo , thank you for looking into the issue. I have tried updating the serenity dependencies to 2.2.1, but there is no difference.
Hi @wakaleo, I have resolved the issue after analzying the sample project for using Serenity Rest-Assured with Cucumber. The problem appears to be a POM configuration issue; in both cases, both @digvijay72 and I had including the standalone Rest-Assured dependencies with version 4.x.x which cannot coexist with the Rest-Assured dependency with version 3.3.0 used by Serenity Rest-Assured.
After removing the standalone Rest-Assured Dependency, the issue was resolved; hence you may mark this issue as closed or resolved. Thanks for your time!
Great to hear! I did spend an hour digging into the code but didn't spot that dependency difference!
Hi @wakaleo, @digvijay72 , @SengCheong , I am facing the same issue even though there is no standalone rest assured dependency used in my serenity-jbehave project.
Tried with the latest serenity version of 2.3.4, still facing the same issue.
java.lang.ExceptionInInitializerError
at net.serenitybdd.rest.utils.RestDecorationHelper.decorate(RestDecorationHelper.java:20)
at net.serenitybdd.rest.SerenityRest.given(SerenityRest.java:215)
at com.pages.HomePage.setPost(HomePage.java:57)
at com.steps.HomeSteps.post(HomeSteps.java:43)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.jbehave.core.steps.StepCreator$ParametrisedStep.perform(StepCreator.java:790)
at org.jbehave.core.embedder.PerformableTree$FineSoFar.run(PerformableTree.java:349)
at org.jbehave.core.embedder.PerformableTree$PerformableSteps.perform(PerformableTree.java:1177)
at org.jbehave.core.embedder.PerformableTree$AbstractPerformableScenario.performRestartableSteps(PerformableTree.java:1038)
at org.jbehave.core.embedder.PerformableTree$ExamplePerformableScenario.perform(PerformableTree.java:1108)
at org.jbehave.core.embedder.PerformableTree$PerformableScenario.perform(PerformableTree.java:968)
at org.jbehave.core.embedder.PerformableTree$PerformableStory.performScenarios(PerformableTree.java:860)
at org.jbehave.core.embedder.PerformableTree$PerformableStory.perform(PerformableTree.java:835)
at org.jbehave.core.embedder.PerformableTree.performCancellable(PerformableTree.java:417)
at org.jbehave.core.embedder.PerformableTree.perform(PerformableTree.java:388)
at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:293)
at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:266)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.UnsupportedOperationException: Cannot define class using reflection: Could not find sun.misc.Unsafe
at net.bytebuddy.dynamic.loading.ClassInjector$UsingReflection$Dispatcher$Initializable$Unavailable.defineClass(ClassInjector.java:334)
at net.bytebuddy.dynamic.loading.ClassInjector$UsingReflection.inject(ClassInjector.java:187)
at net.bytebuddy.dynamic.loading.ClassLoadingStrategy$Default$InjectionDispatcher.load(ClassLoadingStrategy.java:205)
at net.bytebuddy.dynamic.loading.ClassLoadingStrategy$Default.load(ClassLoadingStrategy.java:126)
at net.bytebuddy.dynamic.TypeResolutionStrategy$Passive.initialize(TypeResolutionStrategy.java:79)
at net.bytebuddy.dynamic.DynamicType$Default$Unloaded.load(DynamicType.java:4247)
at net.serenitybdd.rest.utils.RestSpecificationFactory.
"Cannot define class using reflection: Could not find sun.misc.Unsafe" - this indicates either a dependency issue or some kind of JVM compatibility issue. So the first thing to do is a dependency analysis to check for version conflicts. If there aren't any, it could be a JDK issue - check using other versions of Java.
I still see the same issue occurring for me. Any full-proof solution here? Please help.
Do a dependency analysis and identify and remove any dependency conflicts.
Hi Wakaleo,
These days i heard lot of serenity framework these days and i have been using custom framework for my REST APIs automation, the framework report goods and its report generation is very good compared to others. At the same time i have some problem with this framework which is giving the problem when i run with maven configuration. The same test run perfect when i run with Junit tests. Any suggestions would be really helpful.
Thanks Sunil Kirangi
Hard to say if you don't mention what the problem you are seeing is
Closed due to inactivity.
The pom looks like this :
<?xml version="1.0" encoding="UTF-8"?> <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">
response = SerenityRest.given().when().header("entity", "XYZ").get(url); response.prettyPrint(); *****this is throwing error message
response = Rest.given().when().header("entity", "XYZ").get(url); response.prettyPrint(); ****this is working fine
Giving error as ;
java.lang.ExceptionInInitializerError at net.serenitybdd.rest.utils.RestDecorationHelper.decorate(RestDecorationHelper.java:20) at net.serenitybdd.rest.SerenityRest.given(SerenityRest.java:216) at starter.stepdefinitions.GoStepDefinitions.apiTestingRestAssured(GoStepDefinitions.java:451) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133) at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584) at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:172) at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46) at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:804) at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145) at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128) at java.base/java.util.ArrayList.forEach(ArrayList.java:1540) at org.testng.TestRunner.privateRun(TestRunner.java:770) at org.testng.TestRunner.run(TestRunner.java:591) at org.testng.SuiteRunner.runTest(SuiteRunner.java:402) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:396) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:355) at org.testng.SuiteRunner.run(SuiteRunner.java:304) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1180) at org.testng.TestNG.runSuitesLocally(TestNG.java:1102) at org.testng.TestNG.runSuites(TestNG.java:1032) at org.testng.TestNG.run(TestNG.java:1000) at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:66) at com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:110) Caused by: java.lang.IllegalArgumentException: Cannot resolve ambiguous delegation of public io.restassured.specification.ResponseSpecification io.restassured.specification.ResponseSpecification.root(java.lang.String) to net.bytebuddy.implementation.bind.MethodDelegationBinder$MethodBinding$Builder$Build@55cdea93 or net.bytebuddy.implementation.bind.MethodDelegationBinder$MethodBinding$Builder$Build@2fdc7e53 at net.bytebuddy.implementation.bind.MethodDelegationBinder$BindingResolver$Default.doResolve(MethodDelegationBinder.java:662) at net.bytebuddy.implementation.bind.MethodDelegationBinder$BindingResolver$Default.doResolve(MethodDelegationBinder.java:655) at net.bytebuddy.implementation.bind.MethodDelegationBinder$BindingResolver$Default.doResolve(MethodDelegationBinder.java:650) at net.bytebuddy.implementation.bind.MethodDelegationBinder$BindingResolver$Default.doResolve(MethodDelegationBinder.java:655) at net.bytebuddy.implementation.bind.MethodDelegationBinder$BindingResolver$Default.doResolve(MethodDelegationBinder.java:655) at net.bytebuddy.implementation.bind.MethodDelegationBinder$BindingResolver$Default.doResolve(MethodDelegationBinder.java:655) at net.bytebuddy.implementation.bind.MethodDelegationBinder$BindingResolver$Default.doResolve(MethodDelegationBinder.java:650) at net.bytebuddy.implementation.bind.MethodDelegationBinder$BindingResolver$Default.doResolve(MethodDelegationBinder.java:647) at net.bytebuddy.implementation.bind.MethodDelegationBinder$BindingResolver$Default.doResolve(MethodDelegationBinder.java:647) at net.bytebuddy.implementation.bind.MethodDelegationBinder$BindingResolver$Default.doResolve(MethodDelegationBinder.java:647) at net.bytebuddy.implementation.bind.MethodDelegationBinder$BindingResolver$Default.resolve(MethodDelegationBinder.java:611) at net.bytebuddy.implementation.bind.MethodDelegationBinder$Processor.bind(MethodDelegationBinder.java:1098) at net.bytebuddy.implementation.MethodDelegation$Appender.apply(MethodDelegation.java:1282) at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod$WithBody.applyCode(TypeWriter.java:713) at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod$WithBody.applyBody(TypeWriter.java:698) at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod.apply(TypeWriter.java:605) at net.bytebuddy.dynamic.scaffold.TypeWriter$Default$ForCreation.create(TypeWriter.java:5133) at net.bytebuddy.dynamic.scaffold.TypeWriter$Default.make(TypeWriter.java:1933) at net.bytebuddy.dynamic.scaffold.subclass.SubclassDynamicTypeBuilder.make(SubclassDynamicTypeBuilder.java:225) at net.bytebuddy.dynamic.scaffold.subclass.SubclassDynamicTypeBuilder.make(SubclassDynamicTypeBuilder.java:198) at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase.make(DynamicType.java:3404) at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase$Delegator.make(DynamicType.java:3600) at net.serenitybdd.rest.utils.RestSpecificationFactory.(RestSpecificationFactory.java:53)
... 30 more