1 Reply Latest reply on Apr 17, 2013 4:15 AM by nancymarido

    RestEasy + Jackson = java.lang.NoClassDefFoundError: org/codehaus/jackson/map/JsonMappingException$Reference

    lucianoborges

      I'm developing an aplication where a I take a route from google maps, save it on postgresql/postgis and i'd like to take this route (LineString geometry) and send back to the GoogleMaps.

       

      I already got save the map on database, now I want to show the routes on map.

       

      On the client side I'm using JQuery (AJAX) + Google Maps Api.

      On the server side I'm using REST services with RestEasy.

       

      I trie to work with Jackson to transform the Entity to JSON, but, the Jackson fails to transform geometric data in json. I think!

       

      Someone know how to transform this spatial data to JSON?

       

      My enviroment: JBossAS7.1 / PostgreSQL 8.4 + Postgis

       

      My Entity:

      public class Rota {

      ...
      private LineString caminho;

      public Rota() {
      }

      public Rota(Integer id, Usuario usuario, String descricao, LineString lineString) {
      this.id = id;
      this.usuario = usuario;
      this.descricao = descricao;
      this.caminho = lineString;
      }

      // getters and setters

      @Type(type = "org.hibernate.spatial.GeometryType")
      public LineString getCaminho() {
      return caminho;
      }

      public void setCaminho(LineString caminho) {
      this.caminho = caminho;
      }// hashcode and equals method
      }

      My REST service:

      @Inject
      private RotaBC rotaBC;

       

      @GET
      @Path("/rotas/{idrota}")
      @Produces("application/json")
      public Rota show(@PathParam("id") String id) {
      return rotaBC.show(Integer.parseInt(id));
      }

      The error:


      15:05:16,447 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/sharecar].[default]] (http--0.0.0.0-8080-1) Servlet.service() for servlet default threw exception: java.lang.ClassNotFoundException: org.codehaus.jackson.map.JsonMappingException$Reference from [Module "org.codehaus.jackson.jackson-mapper-asl:main" from local module loader @1d332b (roots: /opt/demoiselle/server/jboss-7.1/modules)]

      ...

      at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)

      at org.codehaus.jackson.map.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:166)

      ...

      at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:446) at org.codehaus.jackson.map.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:150) at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:112)

       

      My POM.xml

       

      <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-spatial</artifactId>
      <version>4.0-M1</version>
      </dependency>

      <dependency>
      <groupId>postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <version>8.4-701.jdbc3</version>
      </dependency>

      <dependency>
      <groupId>org.postgis</groupId>
      <artifactId>postgis-jdbc</artifactId>
      <version>1.3.3</version>
      </dependency>

      <dependency>
      <groupId>org.jboss.resteasy</groupId>
      <artifactId>resteasy-jaxrs</artifactId>
      <scope>provided</scope>
      </dependency>

      <dependency>
      <groupId>org.jboss.spec.javax.ws.rs</groupId>
      <artifactId>jboss-jaxrs-api_1.1_spec</artifactId>
      <scope>provided</scope>
      </dependency>

      <dependency>
      <groupId>org.jboss.resteasy</groupId>
      <artifactId>resteasy-jackson-provider</artifactId>
      <scope>provided</scope>
      </dependency>

       

      I already tried update the Jackson, adding:

       

      <dependency>

      <groupId>org.codehaus.jackson</groupId>

      <artifactId>jackson-core-asl</artifactId>

      <version>1.9.11</version>

      </dependency>

       

      <dependency>

      <groupId>org.codehaus.jackson</groupId>

      <artifactId>jackson-mapper-asl</artifactId>

      <version>1.9.11</version>

      </dependency>

       

      But did not work.

      How to fix it?