After lots of hacking I figure out how to resolve this problem. This is good
solution. It severalty cripples jackson but at least for now I am unblocked

1) turn off annotations.
        mapper.configure(Feature.USE_ANNOTATIONS, false);


2) in maven set the jackson dependencies as provided.

<properties>

<jackson.version>1.9.13</jackson.version> <!-- 1.8.8 1.9.13 2.3.4-Final -->

</properties>



<dependencies>

<dependency>

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

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

<scope>provided</scope>

<version>${jackson.version}</version>

</dependency>

<dependency>

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

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

<scope>provided</scope>

<version>${jackson.version}</version>

</dependency>



Hope this helps someone else



andy


From:  Andrew Davidson <a...@santacruzintegration.com>
Date:  Wednesday, September 17, 2014 at 4:28 PM
To:  "user@spark.apache.org" <user@spark.apache.org>
Subject:  spark-1.1.0-bin-hadoop2.4 java.lang.NoClassDefFoundError:
org/codehaus/jackson/annotate/JsonClass

> Hi I am new to spark.
> 
> I am trying to write a simple java program that process tweets that where
> collected and stored in a file. I figured the simplest thing to do would be to
> convert the JSON string into a java map. When I submit my jar file I keep
> getting the following error
> 
> java.lang.NoClassDefFoundError: org/codehaus/jackson/annotate/JsonClass
> 
> 
> For the life of me I can not figure out what the problem is. I am using maven
> shade plugin and check to see that the missing class is my uber jar
> 
> Any suggestions would be greatly appreciated.
> 
> Andy
> 
> P.s. I should mention that I am running everything on my local machine.
> 
> <properties>
> 
> <jackson.version>1.8.8</jackson.version> <!-- 1.9.13 -->
> 
> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
> 
> </properties>
> 
> 
> 
> <dependencies>
> 
> <dependency>
> 
> <groupId>org.codehaus.jackson</groupId>
> 
> <artifactId>jackson-core-asl</artifactId>
> 
> <version>${jackson.version}</version>
> 
> </dependency>
> 
> <dependency>
> 
> <groupId>org.codehaus.jackson</groupId>
> 
> <artifactId>jackson-mapper-asl</artifactId>
> 
> <version>${jackson.version}</version>
> 
> </dependency>
> 
> 
> 
> I am using shade to build an uber jar
> 
> 
> 
> $jar ­tvf target/myUber.jar
> 
> Š
> 
>    580 Wed Sep 17 16:17:36 PDT 2014
> org/codehaus/jackson/annotate/JsonClass.class
> 
> Š
> 
> 
> 
> 
> 14/09/17 16:13:24 ERROR Executor: Exception in task 0.0 in stage 0.0 (TID 0)
> 
> java.lang.NoClassDefFoundError: org/codehaus/jackson/annotate/JsonClass
> 
> at 
> org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector.findDeserial
> izationType(JacksonAnnotationIntrospector.java:524)
> 
> at 
> org.codehaus.jackson.map.deser.BasicDeserializerFactory.modifyTypeByAnnotation
> (BasicDeserializerFactory.java:732)
> 
> at 
> org.codehaus.jackson.map.deser.BasicDeserializerFactory.createMapDeserializer(
> BasicDeserializerFactory.java:337)
> 
> at 
> org.codehaus.jackson.map.deser.StdDeserializerProvider._createDeserializer(Std
> DeserializerProvider.java:377)
> 
> at 
> org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCache2(StdDes
> erializerProvider.java:307)
> 
> at 
> org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCacheValueDes
> erializer(StdDeserializerProvider.java:287)
> 
> at 
> org.codehaus.jackson.map.deser.StdDeserializerProvider.findValueDeserializer(S
> tdDeserializerProvider.java:136)
> 
> at 
> org.codehaus.jackson.map.deser.StdDeserializerProvider.findTypedValueDeseriali
> zer(StdDeserializerProvider.java:157)
> 
> at 
> org.codehaus.jackson.map.ObjectMapper._findRootDeserializer(ObjectMapper.java:
> 2468)
> 
> at 
> org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2402)
> 
> at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1609)
> 
> at com.santacruzintegration.spark.JSONHelper.toJsonMap(JSONHelper.java:40)
> 
> 
> 
> 
> 
> public class JSONHelper {
> 
>     public static final ObjectMapper mapper = new ObjectMapper();
> 
>     static {
> 
>         mapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
> 
>         //mapper.configure(Feature.USE_ANNOTATIONS, false);
> 
>     }
> 
> Š
> 
>    public static Map<String, String> toJsonMap(String json) {
> 
>         System.err.println("AEDWIP toJsonMap: " + json);
> 
>         try {
> 
>             TypeReference<HashMap<String, String>> typeRef = new
> TypeReference<HashMap<String, String>>() {
> 
>             };
> 
>             //return mapper.readValue(json, new
> TypeReference<HashMap<String,String>>(){});
> 
>             return mapper.readValue(json, typeRef);
> 
>             //return mapper.convertValue(json, typeRef);
> 
>             
> 
> //            HashMap<String,String> ret =
> 
> //                    new ObjectMapper().readValue(json, HashMap.class);
> 
>         } catch (Exception e) {
> 
>             throw new IOError(e);
> 
>         }
> 
>     }
> 
>     
> 
> 
> 


Reply via email to