jersey error java.lang.IncompatibleClassChangeError: Implementing class in jetty embedded -
running bailiwick of jersey 2.5.1 , embedding jetty jetty-9.1.2.v20140210
i want embedded jetty server capable of servlet 3x jersey. know jetty instance works servlet handler , static file hander. next details error: java.lang.incompatibleclasschangeerror: implementing class
i sure related cglib / asm not sure how prepare it.
the pom looks this:
<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"> <modelversion>4.0.0</modelversion> <groupid>my.test</groupid> <artifactid>embedjettyx</artifactid> <version>1.0</version> <packaging>jar</packaging> <name>embedjettyx</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceencoding>utf-8</project.build.sourceencoding> <skiptests>true</skiptests> <jersey.version>2.5.1</jersey.version> </properties> <dependencymanagement> <dependencies> <dependency> <groupid>org.glassfish.jersey</groupid> <artifactid>jersey-bom</artifactid> <version>${jersey.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.9</version> <scope>test</scope> </dependency> </dependencies> </dependencymanagement> <dependencies> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.9</version> <scope>test</scope> </dependency> <!-- <dependency> <groupid>cglib</groupid> <artifactid>cglib</artifactid> <version>2.2.2</version> </dependency> <dependency> <groupid>asm</groupid> <artifactid>asm-util</artifactid> <version>3.1</version> </dependency>--> <dependency> <groupid>org.eclipse.jetty</groupid> <artifactid>jetty-maven-plugin</artifactid> <version>9.1.2.v20140210</version> </dependency> <dependency> <groupid>org.eclipse.jetty</groupid> <artifactid>jetty-server</artifactid> <version>9.1.2.v20140210</version> </dependency> <!-- <dependency> <groupid>javax.servlet</groupid> <artifactid>servlet-api</artifactid> <version>2.5</version> </dependency>--> <dependency> <groupid>javax.servlet</groupid> <artifactid>javax.servlet-api</artifactid> <version>3.1.0</version> </dependency> <dependency> <groupid>javax</groupid> <artifactid>javaee-web-api</artifactid> <version>7.0</version> <type>jar</type> </dependency> <!-- <dependency> <groupid>javax.ws.rs</groupid> <artifactid>jsr311-api</artifactid> <version>1.1.1</version> </dependency> <dependency> <groupid>javax.servlet</groupid> <artifactid>servlet-api</artifactid> <version>2.4</version> </dependency>--> <dependency> <groupid>org.glassfish.jersey.containers</groupid> <artifactid>jersey-container-servlet-core</artifactid> <version>2.5.1</version> </dependency> <dependency> <groupid>org.eclipse.jetty</groupid> <artifactid>jetty-deploy</artifactid> <version>9.1.2.v20140210</version> </dependency> </dependencies> </project> the rest app class this:
@applicationpath("/") public class application extends resourceconfig { public application() { packages("quintes.rest"); } } the rest resource:
@path("test") public class restresource { @get @produces({mediatype.application_json}) public response getdefault() { homecoming response.ok("test returned").build(); } } and main() this:
public class app { public static void main(string[] args) { server server = new server(8081); servletcontexthandler context = new servletcontexthandler(servletcontexthandler.no_sessions); context.setcontextpath("/"); server.sethandler(context); servletholder servletholder = context.addservlet(org.glassfish.jersey.servlet.servletcontainer.class, "/api/*"); servletholder.setinitparameter("com.sun.jersey.config.property.resourceconfigclass", "com.sun.jersey.api.core.packagesresourceconfig"); servletholder.setinitparameter("com.sun.jersey.config.property.packages", "quintes.rest"); servletholder staticservlet = context.addservlet(defaultservlet.class, "/*"); staticservlet.setinitparameter("resourcebase", "src/main/webapp"); staticservlet.setinitparameter("pathinfoonly", "true"); seek { server.start(); server.join(); } grab (throwable t) { t.printstacktrace(system.err); } } } however error mentioned part of stack trace:
2014-06-23 09:26:49.502:warn:oejs.servlethandler:qtp28971452-13: error /api/ java.lang.incompatibleclasschangeerror: implementing class @ java.lang.classloader.defineclass1(native method) @ java.lang.classloader.defineclass(classloader.java:800) @ java.security.secureclassloader.defineclass(secureclassloader.java:142) @ java.net.urlclassloader.defineclass(urlclassloader.java:449) @ java.net.urlclassloader.access$100(urlclassloader.java:71) @ java.net.urlclassloader$1.run(urlclassloader.java:361) @ java.net.urlclassloader$1.run(urlclassloader.java:355) @ java.security.accesscontroller.doprivileged(native method) @ java.net.urlclassloader.findclass(urlclassloader.java:354) @ java.lang.classloader.loadclass(classloader.java:425) @ sun.misc.launcher$appclassloader.loadclass(launcher.java:308) @ java.lang.classloader.loadclass(classloader.java:358) @ org.glassfish.jersey.server.resourceconfig.scanclasses(resourceconfig.java:875) @ org.glassfish.jersey.server.resourceconfig._getclasses(resourceconfig.java:840) @ org.glassfish.jersey.server.resourceconfig.getclasses(resourceconfig.java:755) @ org.glassfish.jersey.server.resourceconfig$runtimeconfig.<init>(resourceconfig.java:1171) @ org.glassfish.jersey.server.resourceconfig$runtimeconfig.<init>(resourceconfig.java:1144) @ org.glassfish.jersey.server.resourceconfig.createruntimeconfig(resourceconfig.java:1140) @ org.glassfish.jersey.server.applicationhandler.<init>(applicationhandler.java:299) @ org.glassfish.jersey.servlet.webcomponent.<init>(webcomponent.java:311) @ org.glassfish.jersey.servlet.servletcontainer.init(servletcontainer.java:169) @ org.glassfish.jersey.servlet.servletcontainer.init(servletcontainer.java:359) @ javax.servlet.genericservlet.init(genericservlet.java:244) @ org.eclipse.jetty.servlet.servletholder.initservlet(servletholder.java:561) @ org.eclipse.jetty.servlet.servletholder.getservlet(servletholder.java:424) @ org.eclipse.jetty.servlet.servletholder.handle(servletholder.java:690) @ org.eclipse.jetty.servlet.servlethandler.dohandle(servlethandler.java:552) @ org.eclipse.jetty.server.handler.contexthandler.dohandle(contexthandler.java:1112) @ org.eclipse.jetty.servlet.servlethandler.doscope(servlethandler.java:479) @ org.eclipse.jetty.server.handler.contexthandler.doscope(contexthandler.java:1046) @ org.eclipse.jetty.server.handler.scopedhandler.handle(scopedhandler.java:141) @ org.eclipse.jetty.server.handler.handlerwrapper.handle(handlerwrapper.java:97) @ org.eclipse.jetty.server.server.handle(server.java:459) @ org.eclipse.jetty.server.httpchannel.handle(httpchannel.java:281) @ org.eclipse.jetty.server.httpconnection.onfillable(httpconnection.java:232) @ org.eclipse.jetty.io.abstractconnection$1.run(abstractconnection.java:505) @ org.eclipse.jetty.util.thread.queuedthreadpool.runjob(queuedthreadpool.java:607) @ org.eclipse.jetty.util.thread.queuedthreadpool$3.run(queuedthreadpool.java:536) @ java.lang.thread.run(thread.java:744) what doing wrong?
thanks in advance
jersey embedded-jetty
No comments:
Post a Comment