federecio / dropwizard-swagger

a Dropwizard bundle that serves Swagger UI static content and loads Swagger endpoints.
Other
130 stars 186 forks source link

Java 8 support #61

Open gennadyg opened 8 years ago

gennadyg commented 8 years ago

Hi,

Just tried to use this project with java 8 and it doesn't work, is it known issue ?

Thanks, Genady

/usr/java/jdk1.8.0_51/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:50896,suspend=y,server=n -Dfile.encoding=UTF-8 -classpath /usr/java/jdk1.8.0_51/jre/lib/rt.jar:/usr/java/jdk1.8.0_51/jre/lib/javaws.jar:/usr/java/jdk1.8.0_51/jre/lib/deploy.jar:/usr/java/jdk1.8.0_51/jre/lib/jfr.jar:/usr/java/jdk1.8.0_51/jre/lib/plugin.jar:/usr/java/jdk1.8.0_51/jre/lib/jsse.jar:/usr/java/jdk1.8.0_51/jre/lib/management-agent.jar:/usr/java/jdk1.8.0_51/jre/lib/jce.jar:/usr/java/jdk1.8.0_51/jre/lib/charsets.jar:/usr/java/jdk1.8.0_51/jre/lib/resources.jar:/usr/java/jdk1.8.0_51/jre/lib/jfxswt.jar:/usr/java/jdk1.8.0_51/jre/lib/ext/cldrdata.jar:/usr/java/jdk1.8.0_51/jre/lib/ext/dnsns.jar:/usr/java/jdk1.8.0_51/jre/lib/ext/localedata.jar:/usr/java/jdk1.8.0_51/jre/lib/ext/jfxrt.jar:/usr/java/jdk1.8.0_51/jre/lib/ext/zipfs.jar:/usr/java/jdk1.8.0_51/jre/lib/ext/nashorn.jar:/usr/java/jdk1.8.0_51/jre/lib/ext/sunpkcs11.jar:/usr/java/jdk1.8.0_51/jre/lib/ext/sunjce_provider.jar:/usr/java/jdk1.8.0_51/jre/lib/ext/sunec.jar:/home/dev/workspace/jCrawler/target/classes:/home/dev/.m2/repository/io/dropwizard/dropwizard-core/0.8.2/dropwizard-core-0.8.2.jar:/home/dev/.m2/repository/io/dropwizard/dropwizard-util/0.8.2/dropwizard-util-0.8.2.jar:/home/dev/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.5.0/jackson-annotations-2.5.0.jar:/home/dev/.m2/repository/com/google/guava/guava/18.0/guava-18.0.jar:/home/dev/.m2/repository/com/google/code/findbugs/jsr305/3.0.0/jsr305-3.0.0.jar:/home/dev/.m2/repository/joda-time/joda-time/2.7/joda-time-2.7.jar:/home/dev/.m2/repository/io/dropwizard/dropwizard-jackson/0.8.2/dropwizard-jackson-0.8.2.jar:/home/dev/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.5.1/jackson-core-2.5.1.jar:/home/dev/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.5.1/jackson-databind-2.5.1.jar:/home/dev/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk7/2.5.1/jackson-datatype-jdk7-2.5.1.jar:/home/dev/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-guava/2.5.1/jackson-datatype-guava-2.5.1.jar:/home/dev/.m2/repository/com/fasterxml/jackson/module/jackson-module-afterburner/2.5.1/jackson-module-afterburner-2.5.1.jar:/home/dev/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-joda/2.5.1/jackson-datatype-joda-2.5.1.jar:/home/dev/.m2/repository/org/slf4j/slf4j-api/1.7.10/slf4j-api-1.7.10.jar:/home/dev/.m2/repository/ch/qos/logback/logback-classic/1.1.2/logback-classic-1.1.2.jar:/home/dev/.m2/repository/io/dropwizard/dropwizard-validation/0.8.2/dropwizard-validation-0.8.2.jar:/home/dev/.m2/repository/org/hibernate/hibernate-validator/5.1.3.Final/hibernate-validator-5.1.3.Final.jar:/home/dev/.m2/repository/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar:/home/dev/.m2/repository/org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.jar:/home/dev/.m2/repository/com/fasterxml/classmate/1.0.0/classmate-1.0.0.jar:/home/dev/.m2/repository/org/glassfish/javax.el/3.0.0/javax.el-3.0.0.jar:/home/dev/.m2/repository/io/dropwizard/dropwizard-configuration/0.8.2/dropwizard-configuration-0.8.2.jar:/home/dev/.m2/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.5.1/jackson-dataformat-yaml-2.5.1.jar:/home/dev/.m2/repository/org/yaml/snakeyaml/1.12/snakeyaml-1.12.jar:/home/dev/.m2/repository/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar:/home/dev/.m2/repository/io/dropwizard/dropwizard-logging/0.8.2/dropwizard-logging-0.8.2.jar:/home/dev/.m2/repository/io/dropwizard/metrics/metrics-logback/3.1.1/metrics-logback-3.1.1.jar:/home/dev/.m2/repository/org/slf4j/jul-to-slf4j/1.7.10/jul-to-slf4j-1.7.10.jar:/home/dev/.m2/repository/ch/qos/logback/logback-core/1.1.2/logback-core-1.1.2.jar:/home/dev/.m2/repository/org/slf4j/log4j-over-slf4j/1.7.10/log4j-over-slf4j-1.7.10.jar:/home/dev/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.10/jcl-over-slf4j-1.7.10.jar:/home/dev/.m2/repository/org/eclipse/jetty/jetty-util/9.2.9.v20150224/jetty-util-9.2.9.v20150224.jar:/home/dev/.m2/repository/io/dropwizard/dropwizard-metrics/0.8.2/dropwizard-metrics-0.8.2.jar:/home/dev/.m2/repository/io/dropwizard/dropwizard-jersey/0.8.2/dropwizard-jersey-0.8.2.jar:/home/dev/.m2/repository/org/glassfish/jersey/core/jersey-server/2.19/jersey-server-2.19.jar:/home/dev/.m2/repository/org/glassfish/jersey/core/jersey-common/2.19/jersey-common-2.19.jar:/home/dev/.m2/repository/org/glassfish/jersey/bundles/repackaged/jersey-guava/2.19/jersey-guava-2.19.jar:/home/dev/.m2/repository/org/glassfish/hk2/osgi-resource-locator/1.0.1/osgi-resource-locator-1.0.1.jar:/home/dev/.m2/repository/org/glassfish/jersey/core/jersey-client/2.19/jersey-client-2.19.jar:/home/dev/.m2/repository/javax/ws/rs/javax.ws.rs-api/2.0.1/javax.ws.rs-api-2.0.1.jar:/home/dev/.m2/repository/org/glassfish/jersey/media/jersey-media-jaxb/2.19/jersey-media-jaxb-2.19.jar:/home/dev/.m2/repository/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar:/home/dev/.m2/repository/org/glassfish/hk2/hk2-api/2.4.0-b25/hk2-api-2.4.0-b25.jar:/home/dev/.m2/repository/org/glassfish/hk2/hk2-utils/2.4.0-b25/hk2-utils-2.4.0-b25.jar:/home/dev/.m2/repository/org/glassfish/hk2/external/aopalliance-repackaged/2.4.0-b25/aopalliance-repackaged-2.4.0-b25.jar:/home/dev/.m2/repository/org/glassfish/hk2/external/javax.inject/2.4.0-b25/javax.inject-2.4.0-b25.jar:/home/dev/.m2/repository/org/glassfish/hk2/hk2-locator/2.4.0-b25/hk2-locator-2.4.0-b25.jar:/home/dev/.m2/repository/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar:/home/dev/.m2/repository/org/glassfish/jersey/ext/jersey-metainf-services/2.19/jersey-metainf-services-2.19.jar:/home/dev/.m2/repository/io/dropwizard/metrics/metrics-jersey2/3.1.1/metrics-jersey2-3.1.1.jar:/home/dev/.m2/repository/com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.5.1/jackson-jaxrs-json-provider-2.5.1.jar:/home/dev/.m2/repository/com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.5.1/jackson-jaxrs-base-2.5.1.jar:/home/dev/.m2/repository/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.5.1/jackson-module-jaxb-annotations-2.5.1.jar:/home/dev/.m2/repository/org/glassfish/jersey/containers/jersey-container-servlet/2.19/jersey-container-servlet-2.19.jar:/home/dev/.m2/repository/org/glassfish/jersey/containers/jersey-container-servlet-core/2.19/jersey-container-servlet-core-2.19.jar:/home/dev/.m2/repository/org/eclipse/jetty/jetty-server/9.2.9.v20150224/jetty-server-9.2.9.v20150224.jar:/home/dev/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar:/home/dev/.m2/repository/org/eclipse/jetty/jetty-io/9.2.9.v20150224/jetty-io-9.2.9.v20150224.jar:/home/dev/.m2/repository/org/eclipse/jetty/jetty-webapp/9.2.9.v20150224/jetty-webapp-9.2.9.v20150224.jar:/home/dev/.m2/repository/org/eclipse/jetty/jetty-xml/9.2.9.v20150224/jetty-xml-9.2.9.v20150224.jar:/home/dev/.m2/repository/org/eclipse/jetty/jetty-continuation/9.2.9.v20150224/jetty-continuation-9.2.9.v20150224.jar:/home/dev/.m2/repository/io/dropwizard/dropwizard-servlets/0.8.2/dropwizard-servlets-0.8.2.jar:/home/dev/.m2/repository/io/dropwizard/metrics/metrics-annotation/3.1.1/metrics-annotation-3.1.1.jar:/home/dev/.m2/repository/io/dropwizard/dropwizard-jetty/0.8.2/dropwizard-jetty-0.8.2.jar:/home/dev/.m2/repository/io/dropwizard/metrics/metrics-jetty9/3.1.1/metrics-jetty9-3.1.1.jar:/home/dev/.m2/repository/org/eclipse/jetty/jetty-servlet/9.2.9.v20150224/jetty-servlet-9.2.9.v20150224.jar:/home/dev/.m2/repository/org/eclipse/jetty/jetty-security/9.2.9.v20150224/jetty-security-9.2.9.v20150224.jar:/home/dev/.m2/repository/org/eclipse/jetty/jetty-servlets/9.2.9.v20150224/jetty-servlets-9.2.9.v20150224.jar:/home/dev/.m2/repository/org/eclipse/jetty/jetty-http/9.2.9.v20150224/jetty-http-9.2.9.v20150224.jar:/home/dev/.m2/repository/io/dropwizard/dropwizard-lifecycle/0.8.2/dropwizard-lifecycle-0.8.2.jar:/home/dev/.m2/repository/io/dropwizard/metrics/metrics-core/3.1.1/metrics-core-3.1.1.jar:/home/dev/.m2/repository/io/dropwizard/metrics/metrics-jvm/3.1.1/metrics-jvm-3.1.1.jar:/home/dev/.m2/repository/io/dropwizard/metrics/metrics-servlets/3.1.1/metrics-servlets-3.1.1.jar:/home/dev/.m2/repository/io/dropwizard/metrics/metrics-json/3.1.1/metrics-json-3.1.1.jar:/home/dev/.m2/repository/io/dropwizard/metrics/metrics-healthchecks/3.1.1/metrics-healthchecks-3.1.1.jar:/home/dev/.m2/repository/net/sourceforge/argparse4j/argparse4j/0.4.4/argparse4j-0.4.4.jar:/home/dev/.m2/repository/org/eclipse/jetty/toolchain/setuid/jetty-setuid-java/1.0.2/jetty-setuid-java-1.0.2.jar:/home/dev/.m2/repository/io/federecio/dropwizard-swagger/0.7.0/dropwizard-swagger-0.7.0.jar:/home/dev/.m2/repository/io/dropwizard/dropwizard-assets/0.8.0/dropwizard-assets-0.8.0.jar:/home/dev/.m2/repository/io/dropwizard/dropwizard-views/0.8.0/dropwizard-views-0.8.0.jar:/home/dev/.m2/repository/io/dropwizard/dropwizard-views-freemarker/0.8.0/dropwizard-views-freemarker-0.8.0.jar:/home/dev/.m2/repository/org/freemarker/freemarker/2.3.21/freemarker-2.3.21.jar:/home/dev/.m2/repository/com/wordnik/swagger-jersey2-jaxrs/1.5.1-M2/swagger-jersey2-jaxrs-1.5.1-M2.jar:/home/dev/.m2/repository/com/wordnik/swagger-jaxrs/1.5.1-M2/swagger-jaxrs-1.5.1-M2.jar:/home/dev/.m2/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.4.2/jackson-dataformat-xml-2.4.2.jar:/home/dev/.m2/repository/org/codehaus/woodstox/stax2-api/3.1.4/stax2-api-3.1.4.jar:/home/dev/.m2/repository/com/wordnik/swagger-core/1.5.1-M2/swagger-core-1.5.1-M2.jar:/home/dev/.m2/repository/com/wordnik/swagger-models/1.5.1-M2/swagger-models-1.5.1-M2.jar:/home/dev/.m2/repository/com/wordnik/swagger-annotations/1.5.1-M2/swagger-annotations-1.5.1-M2.jar:/home/dev/.m2/repository/org/reflections/reflections/0.9.9/reflections-0.9.9.jar:/home/dev/.m2/repository/com/google/code/findbugs/annotations/2.0.1/annotations-2.0.1.jar:/home/dev/.m2/repository/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01.jar:/home/dev/idea-IC-141.713.2/lib/idea_rt.jar com.bionic8.core.SampleApplication server /home/dev/workspace/jCrawler/conf/sample-config.yaml Connected to the target VM, address: '127.0.0.1:50896', transport: 'socket' INFO [2015-07-23 09:24:46,138] org.eclipse.jetty.util.log: Logging initialized @1797ms INFO [2015-07-23 09:24:46,247] io.dropwizard.assets.AssetsBundle: Registering AssetBundle with name: swagger-assets for path /swagger-static/* INFO [2015-07-23 09:24:46,408] org.reflections.Reflections: Reflections took 88 ms to scan 1 urls, producing 6 keys and 6 values INFO [2015-07-23 09:24:46,421] io.dropwizard.server.ServerFactory: Starting SampleApplication INFO [2015-07-23 09:24:46,507] org.eclipse.jetty.setuid.SetUIDListener: Opened SampleApplication@701bc94e{HTTP/1.1}{0.0.0.0:9999} INFO [2015-07-23 09:24:46,511] org.eclipse.jetty.server.Server: jetty-9.2.9.v20150224 INFO [2015-07-23 09:24:47,259] io.dropwizard.jersey.DropwizardResourceConfig: The following paths were found for the configured resources:

GET     /sample (com.bionic8.com.bionic8.resources.SampleResource)
GET     /sample/hello-with-path-param/{name} (com.bionic8.com.bionic8.resources.SampleResource)
GET     /sample/hello-with-query-param (com.bionic8.com.bionic8.resources.SampleResource)
POST    /sample (com.bionic8.com.bionic8.resources.SampleResource)
GET     /swagger (io.federecio.dropwizard.swagger.SwaggerResource)
GET     /swagger.json (com.wordnik.swagger.jaxrs.listing.ApiListingResource)
GET     /swagger.yaml (com.wordnik.swagger.jaxrs.listing.ApiListingResource)

INFO [2015-07-23 09:24:47,263] org.eclipse.jetty.server.handler.ContextHandler: Started i.d.j.MutableServletContextHandler@f29353f{/,null,AVAILABLE} INFO [2015-07-23 09:24:47,269] io.dropwizard.setup.AdminEnvironment: tasks =

POST    /tasks/log-level (io.dropwizard.servlets.tasks.LogConfigurationTask)
POST    /tasks/gc (io.dropwizard.servlets.tasks.GarbageCollectionTask)

INFO [2015-07-23 09:24:47,280] org.eclipse.jetty.server.handler.ContextHandler: Started i.d.j.MutableServletContextHandler@59939293{/admin,null,AVAILABLE} INFO [2015-07-23 09:24:47,287] org.eclipse.jetty.server.ServerConnector: Started SampleApplication@701bc94e{HTTP/1.1}{0.0.0.0:9999} INFO [2015-07-23 09:24:47,287] org.eclipse.jetty.server.Server: Started @2948ms 10.20.0.2 - - [23/Jul/2015:09:25:02 +0000] "GET /swagger HTTP/1.1" 200 - "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36" 215 INFO [2015-07-23 09:25:02,678] org.reflections.Reflections: Reflections took 2 ms to scan 1 urls, producing 6 keys and 6 values ERROR [2015-07-23 09:25:02,684] io.dropwizard.jersey.errors.LoggingExceptionMapper: Error handling a request: 812f1669da3252f6 ! java.lang.NullPointerException: null ! at com.wordnik.swagger.jaxrs.config.BeanConfig.configure(BeanConfig.java:223) ~[swagger-jaxrs-1.5.1-M2.jar:1.5.1-M2] ! at com.wordnik.swagger.jaxrs.listing.ApiListingResource.scan(ApiListingResource.java:53) ~[swagger-jaxrs-1.5.1-M2.jar:1.5.1-M2] ! at com.wordnik.swagger.jaxrs.listing.ApiListingResource.getListingJson(ApiListingResource.java:80) ~[swagger-jaxrs-1.5.1-M2.jar:1.5.1-M2] ! at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_51] ! at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_51] ! at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_51] ! at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_51] ! at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) ~[jersey-server-2.19.jar:na] ! at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) ~[jersey-server-2.19.jar:na] ! at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) ~[jersey-server-2.19.jar:na] ! at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) ~[jersey-server-2.19.jar:na] ! at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) ~[jersey-server-2.19.jar:na] ! at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) ~[jersey-server-2.19.jar:na]

neyao commented 8 years ago

Got the same stacktrace in my application too.

jadams74 commented 5 years ago

I am starting to wonder if this is the source of a bunch of org.reflections.Reflections warnings I am seeing. e.g., this built with java7 and consuming components built with java8?

WARN [2018-10-30 20:42:25,245] org.reflections.Reflections: could not get type for name groovy.lang.GroovyObject from any class loader ! java.lang.ClassNotFoundException: groovy.lang.GroovyObject ! at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ! at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ! at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ! at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ! at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:388) ! ... 14 common frames omitted

Regardless, java 8 should be completely skipped all the way to version 11. JDK8,9 and 10 is not receiving security updates any longer starting in Jan 2018. Support for those old versions now require paying oracle.