Getting "NoClassDefFoundError" Exception when executing Test on Ubuntu 16.04
gaurabhi1986 opened this issue ยท 15 comments
While using this API I am getting below exception.
Can you please let me know How can I resolve this exception.
java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils
at com.browserstack.local.LocalBinary.downloadBinary(LocalBinary.java:96)
at com.browserstack.local.LocalBinary.getBinary(LocalBinary.java:57)
at com.browserstack.local.LocalBinary.(LocalBinary.java:26)
at com.browserstack.local.Local.start(Local.java:57)
Thanks,
Abhishek
@tr4n2uil can you please resolve this issue.
@gaurabhi1986 Please check pom.xml and ensure all dependencies are installed properly. Check out the following snippet from pom.xml in this repo:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20160212</version>
</dependency>
</dependencies>
I believe the error is coming since you haven't installed commons-io. Please check.
Hi @tr4n2uil
I have all the required dependencies installed , still getting this error. please solve this issue.
Thanks,
Abhishe
Please follow these steps and let us know if it worked:
- Clone this fork.
- Switch to
example
branch. - Run
mvn compile && mvn exec:java -Dexec.mainClass=example.BrowserStackLocalExample
This will run the example code which shows how to use com.browserstack.local.Local
Hi @tr4n2uil
I am using this example as a reference to start Browserstack local, but still facing same problem, have modified pom.xml but nothing is working same error coming each time.
Thanks,
Abhishek
Can you try mvn clean
and then mvn compile && mvn exec:java -Dexec.mainClass=example.BrowserStackLocalExample
as earlier ?
Also post the output (with error, if any) please.
Hi @tr4n2uil
I am getting below exception in you example branch ๐
[INFO] ------------------------------------------------------------------------
[INFO] Scanning for projects...
[INFO] Inspecting build with total of 1 modules...
[INFO] Installing Nexus Staging features:
[INFO] ... total of 1 executions of maven-deploy-plugin replaced with nexus-staging-maven-plugin
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building browserstack-local-java 1.0.0
[INFO] ------------------------------------------------------------------------
[WARNING] The artifact org.apache.commons:commons-io:jar:1.3.2 has been relocated to commons-io:commons-io:jar:1.3.2
[INFO]
[INFO] --- exec-maven-plugin:1.5.0:java (default-cli) @ browserstack-local-java ---
[WARNING]
java.lang.reflect.InvocationTargetException
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.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:294)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1012)
at com.browserstack.local.Local.runCommand(Local.java:182)
at com.browserstack.local.Local.start(Local.java:66)
at example.BrowserStackLocalExample.main(BrowserStackLocalExample.java:31)
... 6 more
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.715 s
[INFO] Finished at: 2016-11-08T16:05:00+11:00
[INFO] Final Memory: 14M/226M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.5.0:java (default-cli) on project browserstack-local-java: An exception occured while executing the Java class. null: InvocationTargetException: NullPointerException -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Seems like didn't set your access key in environment.
Run the following, if linux/mac
export BROWSERSTACK_ACCESS_KEY=<your access key here>
or if windows then
set BROWSERSTACK_ACCESS_KEY=<your access key here>
then run as before
mvn clean && mvn compile && mvn -e exec:java -Dexec.mainClass=example.BrowserStackLocalExample
Again, post the output (with error, if any) please.
Hi @tr4n2uil,
Now getting this exception.
[INFO] Installing Nexus Staging features:
[INFO] ... total of 1 executions of maven-deploy-plugin replaced with nexus-staging-maven-plugin
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building browserstack-local-java 1.0.0
[INFO] ------------------------------------------------------------------------
[WARNING] The artifact org.apache.commons:commons-io:jar:1.3.2 has been relocated to commons-io:commons-io:jar:1.3.2
[INFO]
[INFO] --- exec-maven-plugin:1.5.0:java (default-cli) @ browserstack-local-java ---
[WARNING]
java.lang.reflect.InvocationTargetException
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.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:294)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]
at org.json.JSONTokener.syntaxError(JSONTokener.java:433)
at org.json.JSONObject.(JSONObject.java:195)
at org.json.JSONObject.(JSONObject.java:319)
at com.browserstack.local.Local.start(Local.java:80)
at example.BrowserStackLocalExample.main(BrowserStackLocalExample.java:32)
... 6 more
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 37.107 s
[INFO] Finished at: 2016-11-08T16:59:50+11:00
[INFO] Final Memory: 15M/227M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.5.0:java (default-cli) on project browserstack-local-java: An exception occured while executing the Java class. null: InvocationTargetException: A JSONObject text must begin with '{' at 1 [character 2 line 1] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Cool. Pushed a minor change. Can you pull and re-run ?
git pull origin example
mvn clean && mvn compile && mvn -e exec:java -Dexec.mainClass=example.BrowserStackLocalExample
Again, post the output with error, if any.
Hi @tr4n2uil,
Now getting this ๐
C:\Users\abhishek.gaur\browserstack-local-java>mvn compile && mvn -e exec:java -Dexec.mainClass=example.BrowserStackLocalExample
[INFO] Scanning for projects...
[INFO] Inspecting build with total of 1 modules...
[INFO] Installing Nexus Staging features:
[INFO] ... total of 1 executions of maven-deploy-plugin replaced with nexus-staging-maven-plugin
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building browserstack-local-java 1.0.0
[INFO] ------------------------------------------------------------------------
[WARNING] The artifact org.apache.commons:commons-io:jar:1.3.2 has been relocated to commons-io:commons-io:jar:1.3.2
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ browserstack-local-java ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\Users\abhishek.gaur\browserstack-local-java\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ browserstack-local-java ---
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 4 source files to C:\Users\abhishek.gaur\browserstack-local-java\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.300 s
[INFO] Finished at: 2016-11-08T17:42:50+11:00
[INFO] Final Memory: 18M/170M
[INFO] ------------------------------------------------------------------------
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] Inspecting build with total of 1 modules...
[INFO] Installing Nexus Staging features:
[INFO] ... total of 1 executions of maven-deploy-plugin replaced with nexus-staging-maven-plugin
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building browserstack-local-java 1.0.0
[INFO] ------------------------------------------------------------------------
[WARNING] The artifact org.apache.commons:commons-io:jar:1.3.2 has been relocated to commons-io:commons-io:jar:1.3.2
[INFO]
[INFO] --- exec-maven-plugin:1.5.0:java (default-cli) @ browserstack-local-java ---
[WARNING]
java.lang.reflect.InvocationTargetException
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.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:294)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]
at org.json.JSONTokener.syntaxError(JSONTokener.java:433)
at org.json.JSONObject.(JSONObject.java:195)
at org.json.JSONObject.(JSONObject.java:319)
at com.browserstack.local.Local.start(Local.java:82)
at example.BrowserStackLocalExample.main(BrowserStackLocalExample.java:32)
... 6 more
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 36.869 s
[INFO] Finished at: 2016-11-08T17:43:29+11:00
[INFO] Final Memory: 15M/226M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.5.0:java (default-cli) on project browserstack-local-java: An exception occured while executing the Java class. null: InvocationTargetException: A JSONObject text must begin with '{' at 1 [character 2 line 1] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.5.0:java (default-cli) on project browserstack-local-java: An exception occured while executing the Java class. null
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
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:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
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.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: org.apache.maven.plugin.MojoExecutionException: An exception occured while executing the Java class. null
at org.codehaus.mojo.exec.ExecJavaMojo.execute(ExecJavaMojo.java:345)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 20 more
Caused by: java.lang.reflect.InvocationTargetException
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.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:294)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]
at org.json.JSONTokener.syntaxError(JSONTokener.java:433)
at org.json.JSONObject.(JSONObject.java:195)
at org.json.JSONObject.(JSONObject.java:319)
at com.browserstack.local.Local.start(Local.java:82)
at example.BrowserStackLocalExample.main(BrowserStackLocalExample.java:32)
... 6 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Hi @tr4n2uil ..
Please resolve this issues...
Hey @gaurabhi1986
I just tested the example branch on the clone on Ubuntu 16.04 vagrant image. Things are working fine for me.
Also, note that the BROWSERSTACK_USER
env variable was used instead of BROWSERSTACK_USERNAME
, only in the example. We pushed a commit for that, but anyways that error doesn't seem relevant to your case.
In your case, the issue seems to be with the BrowserStackLocal
binary connection.
Relevant change - environment variable BROWSERSTACK_ACCESS_KEY
. Make sure that you did export
and not just set
the variable (It works smoothly in my case).
And to resolve this faster, without delays, just drop an email to support@browserstack.com with the subject Getting "NoClassDefFoundError" Exception when executing Test on Ubuntu 16.04
and make sure you mention if you are behind a proxy/firewall. Hoping to resolve this quickly.
Hi @tr4n2uil
I am not exporting env variable I am simply assigning string value to username and key variables.
Same code sample is working when I set bsLocalArgs.put("binarypath", "/browserstack/BrowserStackLocal");
but it does not work when i did not set localbinary path.
Can you please let me know do I need to set any proxy or something.
@gaurabhi1986 Is this still an issue for you?