users@jersey.java.net

[Jersey] Re: Jersey & Morphia throws error

From: Colin Vipurs <zodiaczx6_at_gmail.com>
Date: Tue, 20 May 2014 10:29:57 +0100

You'll generally see this error when you have compiled against one version
of a library but run against another or there is some byte code
manipulation going on.

The following stackoverflow posts will give you more information:

http://stackoverflow.com/questions/10474976/java-lang-incompatibleclasschangeerror-implementing-class-mongo/10475430#10475430
http://stackoverflow.com/questions/12166382/java-lang-incompatibleclasschangeerror-implementing-class-deploying-to-app-engi

Does Morphia drag in asm? If so, that might be your incompatibility as it's
used by Jersey. If you're using maven you could check the dependencies with

$ mvn dependencies


On Mon, May 19, 2014 at 11:26 PM, Achille MBOUGUENG <simachille_at_gmail.com>wrote:

>
> Hi
> I'm building a REST Application
> i'm using
>
> Jersey:2.8
> Morphia 0.107
> Mongo java driver 2.11.4
>
> My web.xml
>
> <?xml version="1.0" encoding="UTF-8"?>
> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns="http://java.sun.com/xml/ns/javaee"
> xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
> id="WebApp_ID"
> version="2.5">
> <display-name>CAB-FR</display-name>
> <servlet>
> <servlet-name>cab-service</servlet-name>
>
> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
> <init-param>
> <param-name>jersey.config.server.provider.packages</param-name>
> <param-value>com.ams.services</param-value>
> </init-param>
> <load-on-startup>1</load-on-startup>
> </servlet>
> <servlet-mapping>
> <servlet-name>cab-service</servlet-name>
> <url-pattern>/*</url-pattern>
> </servlet-mapping>
>
> </web-app>
>
> and
>
> Morphia m = new Morphia();
>
> throws this error
>
> Grave: Servlet.service() for servlet [cab-service] in context with path
> [/cab-services] threw exception
> [org.glassfish.jersey.server.ContainerException:
> java.lang.IncompatibleClassChangeError: Implementing class] with root cause
> java.lang.IncompatibleClassChangeError: Implementing class
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
> at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at
> org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
> at
> org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
> at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
> at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
> at org.mongodb.morphia.Morphia.<init>(Morphia.java:50)
> at com.cab.dao.impl.AdherentsDaoImpl.addAdhrent(AdherentsDaoImpl.java:27)
> at
> com.cab.core.impl.AdherentsCoreImpl.addAdhrent(AdherentsCoreImpl.java:28)
> at
> com.ams.services.membres.AdherentsServices.addAdherent(AdherentsServices.java:33)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at
> org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
> at
> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:151)
> at
> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171)
> at
> org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$VoidOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:136)
> at
> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104)
> at
> org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:387)
> at
> org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:331)
> at
> org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:103)
> at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:269)
> at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
> at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
> at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
> at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
> at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
> at
> org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:297)
> at
> org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:252)
> at
> org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1023)
> at
> org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:372)
> at
> org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:382)
> at
> org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:345)
> at
> org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:220)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
> at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
> at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
> at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:744)
> --
>
> Please any idea on how to fix it?
>
> Thanks
>
>
>


-- 
Maybe she awoke to see the roommate's boyfriend swinging from the
chandelier wearing a boar's head.
Something which you, I, and everyone else would call "Tuesday", of course.