Uploaded image for project: 'Application Server 7'
  1. Application Server 7
  2. AS7-1406

Classloading / module issue with using resteasy-jackson-provider and joda classes

    XMLWordPrintable

Details

    • Hide

      @Path("joda")
      @Consumes("application/json")
      class JodaResource {
      @POST
      public void throwsProblem(org.joda.time.LocalDate date)

      { System.out.println(date.toString()); }

      }

      Access this resource with a resteasy-client, senden a serialized org.joda.time.LocalDate.

      Show
      @Path("joda") @Consumes("application/json") class JodaResource { @POST public void throwsProblem(org.joda.time.LocalDate date) { System.out.println(date.toString()); } } Access this resource with a resteasy-client, senden a serialized org.joda.time.LocalDate.

    Description

      Classes of org.joda.time cannot be deserialized from JSON with the standard, built-in JodaDeserializer of org.codehaus.jackson, used by resteasy in the resteasy-jackson-provider.

      Cause: jackson-mapper-asl (and possibly others) have no module-dependency to a (missing) module org.joda.time and thus cannot load the classes.

      Stacktrace:
      lang.ClassNotFoundException: org.joda.time.ReadableInstant from [Module "org.codehaus.jackson.jackson-mapper-asl:main" from local module loader @4ce66
      f56 (roots: OBFUSCATED\jboss-as-7.0.0.Final\modules)]
      at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191)
      at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:358)
      at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:330)
      at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:307)
      at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:101)
      at org.codehaus.jackson.map.ext.JodaDeserializers.provide(JodaDeserializers.java:32) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.ext.OptionalHandlerFactory.findDeserializer(OptionalHandlerFactory.java:118) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.BasicDeserializerFactory.createBeanDeserializer(BasicDeserializerFactory.java:358) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:57) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.StdDeserializerProvider._createDeserializer(StdDeserializerProvider.java:342) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCache2(StdDeserializerProvider.java:264) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCacheValueDeserializer(StdDeserializerProvider.java:244) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.StdDeserializerProvider.findValueDeserializer(StdDeserializerProvider.java:111) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.StdDeserializer.findDeserializer(StdDeserializer.java:482) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.BeanDeserializer.resolve(BeanDeserializer.java:271) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.StdDeserializerProvider._resolveDeserializer(StdDeserializerProvider.java:348) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCache2(StdDeserializerProvider.java:303) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCacheValueDeserializer(StdDeserializerProvider.java:244) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.StdDeserializerProvider.findValueDeserializer(StdDeserializerProvider.java:111) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.jsontype.impl.TypeDeserializerBase._findDeserializer(TypeDeserializerBase.java:77) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:65) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.AbstractDeserializer.deserializeWithType(AbstractDeserializer.java:81) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:147) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.SettableBeanProperty$MethodProperty.deserializeAndSet(SettableBeanProperty.java:237) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:496) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:350) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:1961) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:889) [jackson-mapper-asl-1.6.3.jar:1.6.3]
      at org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:410)
      at org.jboss.resteasy.core.interception.MessageBodyReaderContextImpl.proceed(MessageBodyReaderContextImpl.java:105) [resteasy-jaxrs-2.2.1.GA.jar:]
      at org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor.read(GZIPDecodingInterceptor.java:61) [resteasy-jaxrs-2.2.1.GA.jar:]
      at org.jboss.resteasy.core.interception.MessageBodyReaderContextImpl.proceed(MessageBodyReaderContextImpl.java:108) [resteasy-jaxrs-2.2.1.GA.jar:]
      at org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor.read(GZIPDecodingInterceptor.java:61) [resteasy-jaxrs-2.2.1.GA.jar:]
      at org.jboss.resteasy.core.interception.MessageBodyReaderContextImpl.proceed(MessageBodyReaderContextImpl.java:108) [resteasy-jaxrs-2.2.1.GA.jar:]
      at org.jboss.resteasy.core.MessageBodyParameterInjector.inject(MessageBodyParameterInjector.java:168) [resteasy-jaxrs-2.2.1.GA.jar:]
      at org.jboss.resteasy.core.MethodInjectorImpl.injectArguments(MethodInjectorImpl.java:114) [resteasy-jaxrs-2.2.1.GA.jar:]
      at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:137) [resteasy-jaxrs-2.2.1.GA.jar:]
      at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:255) [resteasy-jaxrs-2.2.1.GA.jar:]
      at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:220) [resteasy-jaxrs-2.2.1.GA.jar:]
      at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:209) [resteasy-jaxrs-2.2.1.GA.jar:]
      at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:519) [resteasy-jaxrs-2.2.1.GA.jar:]
      at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:496) [resteasy-jaxrs-2.2.1.GA.jar:]
      at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:119) [resteasy-jaxrs-2.2.1.GA.jar:]
      at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) [resteasy-jaxrs-2.2.1.GA.jar:]
      at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) [resteasy-jaxrs-2.2.1.GA.jar:]
      at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [resteasy-jaxrs-2.2.1.GA.jar:]
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]
      at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:67) [weld-core-1.1.2.AS7.jar:2011-07-06 12
      :26]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:480) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]
      at org.jboss.as.web.NamingValve.invoke(NamingValve.java:57) [jboss-as-web-7.0.0.Final.jar:7.0.0.Final]
      at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:49) [jboss-as-jpa-7.0.0.Final.jar:7.0.0.Final]
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:154) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]
      at java.lang.Thread.run(Thread.java:662) [:1.6.0_24]

      Attachments

        Issue Links

          Activity

            People

              sdouglas1@redhat.com Stuart Douglas
              SebastianJancke Sebastian Jancke (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: