Skip to content
This repository has been archived by the owner on Oct 6, 2022. It is now read-only.

no class found exception when runnning from standalone #1

Closed
nyaw opened this issue Aug 21, 2015 · 18 comments
Closed

no class found exception when runnning from standalone #1

nyaw opened this issue Aug 21, 2015 · 18 comments

Comments

@nyaw
Copy link

nyaw commented Aug 21, 2015

Run from command line java -jar wiremock-1.57-standalone.jar -verbose -extensions com.opentable.extension.BodyTransformer

Exception in thread "main" java.lang.ClassNotFoundException: com.opentable.extension.BodyTransformer
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.github.tomakehurst.wiremock.extension.ExtensionLoader$3.apply(ExtensionLoader.java:76)
at com.github.tomakehurst.wiremock.extension.ExtensionLoader$3.apply(ExtensionLoader.java:72)
at wiremock.com.google.common.collect.Iterators$8.transform(Iterators.java:799)
at wiremock.com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
at wiremock.com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
at wiremock.com.google.common.collect.Maps.uniqueIndex(Maps.java:1163)
at wiremock.com.google.common.collect.Maps.uniqueIndex(Maps.java:1140)
at com.github.tomakehurst.wiremock.extension.ExtensionLoader.asMap(ExtensionLoader.java:43)
at com.github.tomakehurst.wiremock.extension.ExtensionLoader.loadExtension(ExtensionLoader.java:32)
at com.github.tomakehurst.wiremock.standalone.CommandLineOptions.extensionsOfType(CommandLineOptions.java:237)
at com.github.tomakehurst.wiremock.WireMockServer.(WireMockServer.java:85)
at com.github.tomakehurst.wiremock.standalone.WireMockServerRunner.run(WireMockServerRunner.java:62)
at com.github.tomakehurst.wiremock.standalone.WireMockServerRunner.main(WireMockServerRunner.java:110)

@tranhungt
Copy link
Contributor

Thanks for reporting this.
The BodyTransformer jar will need to be added to the java classpath. But first I will need to repackage it with its dependencies, and update the documentation.

I may be able to work on it next week. I'll keep you posted.

@tranhungt
Copy link
Contributor

@nyaw I updated the extension to be used straight on the command line via jar. Download the wiremock-body-transformer-1.0.2.jar file and use as so:

java -cp "wiremock-body-transformer-1.0.2.jar:wiremock-1.57-standalone.jar" com.github.tomakehurst.wiremock.standalone.WireMockServerRunner --verbose --extensions com.opentable.extension.BodyTransformer

@nyaw
Copy link
Author

nyaw commented Aug 24, 2015

@tranhungt when I tried running your suggestions with the updated jar received

Error: Could not find or load main class com.github.tomakehurst.wiremock.standalone.WireMockServerRunner

@tranhungt
Copy link
Contributor

@nyaw , did you download the wiremock standalone server as well?

@tranhungt
Copy link
Contributor

The wiremock standalone jar can be downloaded here. http://wiremock.org/running-standalone.html

@tranhungt tranhungt reopened this Aug 24, 2015
@nyaw
Copy link
Author

nyaw commented Aug 25, 2015

yes running standalone works without any issues. When trying to run with the transformer extensions is the one I'm still struggling

@tranhungt
Copy link
Contributor

That error says it cannot find the WireMockServerRunner. Are you running the command within the directory where the standalone and extension jars are?

You should first be able to run this command to ensure that you can start up the wiremock standalone server.
java -cp "wiremock-1.57-standalone.jar" com.github.tomakehurst.wiremock.standalone.WireMockServerRunner

And then this command to include the extension on the server startup.
java -cp "wiremock-body-transformer-1.0.2.jar:wiremock-1.57-standalone.jar" com.github.tomakehurst.wiremock.standalone.WireMockServerRunner --verbose --extensions com.opentable.extension.BodyTransformer

@nyaw
Copy link
Author

nyaw commented Aug 25, 2015

here's the output from my command line and confirmed all jars are in the same directory

C:\Apps>java -cp "wiremock-1.57-standalone.jar" com.github.tomakehurst.wiremock.standalone.WireMockServerRunner
Picked up JAVA_OPTIONS: -Xmx512M
2015-08-25 10:54:29.312:INFO::Logging to STDERR via wiremock.org.mortbay.log.StdErrLog
/$$ /$$ /$$ /$$ /$$ /$$
| $$ /$ | $$|/ | $$$ /$$$ | $$
| $$ /$$$| $$ /$$ /$$$$$$ /$$$$$$ | $$$$ /$$$$ /$$$$$$ /$$$$$$$| $$ /$$
| $$/$$ $$ $$| $$ /$$
$$ /$$__ $$| $$ $$/$$ $$ /$$__ $$ /$$_____/| $$ /$$/
| $$$$
$$$$| $$| $$ /| $$$$$$$$| $$ $$$| $$| $$ \ $$| $$ | $$$$$$/
| $$$/ \ $$$| $$| $$ | $$
___/| $$\ $ | $$| $$ | $$| $$ | $$_ $$
| $$/ \ $$| $$| $$ | $$$$$$$| $$ / | $$| $$$$$$/| $$$$$$$| $$ \ $$
|/ **/|/|/ _______/|/ |/ ______/ _______/|/ **/

port: 8080
enable-browser-proxying: false
no-request-journal: false
verbose: false

C:\Apps>java -cp "wiremock-body-transformer-1.0.2.jar:wiremock-1.57-standalone.jar" com.github.tomakehurst.wiremock.standalone.WireMockServerRunner --verbose --extensions com.opentable.extension.BodyT
ransformer
Picked up _JAVA_OPTIONS: -Xmx512M
Error: Could not find or load main class com.github.tomakehurst.wiremock.standalone.WireMockServerRunner

@tranhungt
Copy link
Contributor

That's really strange... that exact command works for me. Can you run with java -cp "./*" ?

@tranhungt
Copy link
Contributor

Are you on windows machine?
http://stackoverflow.com/questions/219585/setting-multiple-jars-in-java-classpath

Multiple classpaths uses the ; instead of : between classpaths.

@nyaw
Copy link
Author

nyaw commented Aug 25, 2015

Yup on windows this is what I have tried

C:\Apps>java -cp "./*" com.github.tomakehurst.wiremock.standalone.WireMockServerRunner --verbose --extensions com.opentable.extension.BodyTransformer
Picked up _JAVA_OPTIONS: -Xmx512M
2015-08-25 11:11:47.64 Verbose logging enabled
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/opentable/extension/BodyTransformer : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.github.tomakehurst.wiremock.extension.ExtensionLoader$3.apply(ExtensionLoader.java:76)
at com.github.tomakehurst.wiremock.extension.ExtensionLoader$3.apply(ExtensionLoader.java:72)
at wiremock.com.google.common.collect.Iterators$8.transform(Iterators.java:799)
at wiremock.com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
at wiremock.com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
at wiremock.com.google.common.collect.Maps.uniqueIndex(Maps.java:1163)
at wiremock.com.google.common.collect.Maps.uniqueIndex(Maps.java:1140)
at com.github.tomakehurst.wiremock.extension.ExtensionLoader.asMap(ExtensionLoader.java:43)
at com.github.tomakehurst.wiremock.extension.ExtensionLoader.loadExtension(ExtensionLoader.java:32)
at com.github.tomakehurst.wiremock.standalone.CommandLineOptions.extensionsOfType(CommandLineOptions.java:237)
at com.github.tomakehurst.wiremock.WireMockServer.(WireMockServer.java:85)
at com.github.tomakehurst.wiremock.standalone.WireMockServerRunner.run(WireMockServerRunner.java:62)
at com.github.tomakehurst.wiremock.standalone.WireMockServerRunner.main(WireMockServerRunner.java:110)

C:\Apps>java -cp "wiremock-body-transformer-1.0.2.jar;wiremock-1.57-standalone.jar" com.github.tomakehurst.wiremock.standalone.WireMockServerRunner --verbose --extensions com.opentable.extension.Body
ransformer
Picked up _JAVA_OPTIONS: -Xmx512M
2015-08-25 11:13:20.970 Verbose logging enabled
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/opentable/extension/BodyTransformer : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.github.tomakehurst.wiremock.extension.ExtensionLoader$3.apply(ExtensionLoader.java:76)
at com.github.tomakehurst.wiremock.extension.ExtensionLoader$3.apply(ExtensionLoader.java:72)
at com.google.common.collect.Iterators$8.transform(Iterators.java:799)
at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
at com.google.common.collect.Maps.uniqueIndex(Maps.java:1163)
at com.google.common.collect.Maps.uniqueIndex(Maps.java:1140)
at com.github.tomakehurst.wiremock.extension.ExtensionLoader.asMap(ExtensionLoader.java:43)
at com.github.tomakehurst.wiremock.extension.ExtensionLoader.loadExtension(ExtensionLoader.java:32)
at com.github.tomakehurst.wiremock.standalone.CommandLineOptions.extensionsOfType(CommandLineOptions.java:229)
at com.github.tomakehurst.wiremock.WireMockServer.(WireMockServer.java:78)
at com.github.tomakehurst.wiremock.standalone.WireMockServerRunner.run(WireMockServerRunner.java:62)
at com.github.tomakehurst.wiremock.standalone.WireMockServerRunner.main(WireMockServerRunner.java:108)

@tranhungt
Copy link
Contributor

Nice catch. The wiremock dependency is out of date. I'll update it.

@tranhungt
Copy link
Contributor

@nyaw, Unsupported major.minor version 52.0 seems to be a problem with the code being compiled with java 8 but run on a lower level java.
I'll look into how we can best resolve this.

@tranhungt
Copy link
Contributor

What java version are you using? If not java 8, it's best to upgrade to get all the benefits of the new version. Java 8 runtime is compatible with all prior versions of compiled java code.

@nyaw
Copy link
Author

nyaw commented Aug 26, 2015

yea installed jdk 1.8 on my machine and now able to start the standalone with the extensions. But if you could look at how to overcome running it on jdk 1.7 or below will be good as nearly all of the machines in our jenkins boxes are still on 1.7

stevenschlansker pushed a commit that referenced this issue Aug 26, 2015
@tranhungt tranhungt reopened this Aug 26, 2015
@tranhungt
Copy link
Contributor

@nyaw , we got the fix in place to support 1.7, but can't deploy it yet until the the parent pom gets updated.
I'll post here when it's ready.

@tranhungt
Copy link
Contributor

Unless we have further feedback to support 1.7, we'll close this this ticket and continue to support only 1.8 and onwards.

tranhungt pushed a commit that referenced this issue Jul 24, 2017
Make code more readable.
@srinivasthutika
Copy link

C:\Users\IdeaProjects\wiremock
λ java -jar
.idea\ mappings
__files\ wiremock-standalone-2.12.0.jar
C:\Users\IdeaProjects\wiremock
λ java -jar wiremock-standalone-2.12.0.jar
Exception in thread "main" com.github.tomakehurst.wiremock.common.JsonException
at com.github.tomakehurst.wiremock.common.JsonException.fromJackson(JsonException.java:32)
at com.github.tomakehurst.wiremock.common.Json.read(Json.java:52)
at com.github.tomakehurst.wiremock.stubbing.StubMapping.buildFrom(StubMapping.java:66)
at com.github.tomakehurst.wiremock.standalone.JsonFileMappingsSource.loadMappingsInto(JsonFileMappingsSource.java:82)
at com.github.tomakehurst.wiremock.core.WireMockApp.loadMappingsUsing(WireMockApp.java:154)
at com.github.tomakehurst.wiremock.core.WireMockApp.loadDefaultMappings(WireMockApp.java:150)
at com.github.tomakehurst.wiremock.core.WireMockApp.(WireMockApp.java:84)
at com.github.tomakehurst.wiremock.WireMockServer.(WireMockServer.java:70)
at com.github.tomakehurst.wiremock.standalone.WireMockServerRunner.run(WireMockServerRunner.java:65)
at com.github.tomakehurst.wiremock.standalone.WireMockServerRunner.main(WireMockServerRunner.java:113)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants