You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@samza.apache.org by Avi Flax <av...@aviflax.com> on 2016/02/08 22:12:52 UTC
java.lang.ClassNotFoundException: org.codehaus.jackson.annotate.JsonClass
Hi all, I’m trying to implement a Samza task in Ruby with JRuby but I seem
to be having some trouble with dependencies.
I’m using JBundler — https://github.com/mkristian/jbundler — to add
dependencies. I’m pretty sure it’s a wrapper around Maven.
My Jarfile contains this:
```
repository :apache, "https://repository.apache.org/content/groups/public"
repository :confluent, "http://packages.confluent.io/maven/"
jar 'io.confluent:kafka-avro-serializer', '~>2.0.0'
jar 'org.apache.samza:samza-api', '~>0.10.0'
jar 'org.apache.samza:samza-core_2.10', '~>0.10.0'
jar 'org.apache.samza:samza-shell', '~>0.10.0'
jar 'org.apache.samza:samza-yarn_2.10', '~>0.10.0'
jar 'org.apache.samza:samza-kv_2.10', '~>0.10.0'
jar 'org.apache.samza:samza-kv-rocksdb_2.10', '~>0.10.0'
jar 'org.apache.samza:samza-kv-inmemory_2.10', '~>0.10.0'
jar ‘org.apache.samza:samza-kafka_2.10', '~>0.10.0'
```
When I try to run one of my tests, I’m getting this:
```
Unhandled Java exception: java.lang.NoClassDefFoundError:
org/codehaus/jackson/annotate/JsonClass
java.lang.NoClassDefFoundError: org/codehaus/jackson/annotate/JsonClass
findDeserializationType at
org/codehaus/jackson/map/introspect/JacksonAnnotationIntrospector.java:524
modifyTypeByAnnotation at
org/codehaus/jackson/map/deser/BasicDeserializerFactory.java:729
createBeanDeserializer at
org/codehaus/jackson/map/deser/BeanDeserializerFactory.java:427
_createDeserializer at
org/codehaus/jackson/map/deser/StdDeserializerProvider.java:398
_createAndCache2 at
org/codehaus/jackson/map/deser/StdDeserializerProvider.java:307
_createAndCacheValueDeserializer at
org/codehaus/jackson/map/deser/StdDeserializerProvider.java:287
findValueDeserializer at
org/codehaus/jackson/map/deser/StdDeserializerProvider.java:136
findTypedValueDeserializer at
org/codehaus/jackson/map/deser/StdDeserializerProvider.java:157
_findRootDeserializer at
org/codehaus/jackson/map/ObjectMapper.java:2461
_readMapAndClose at
org/codehaus/jackson/map/ObjectMapper.java:2395
readValue at
org/codehaus/jackson/map/ObjectMapper.java:1602
fromBytes at
org/apache/samza/serializers/JsonSerde.scala:42
bootstrap at
org/apache/samza/coordinator/stream/CoordinatorStreamSystemConsumer.java:148
run at
org/apache/samza/job/JobRunner.scala:113
main at
org/apache/samza/job/JobRunner.scala:66
invoke at java/lang/reflect/Method.java:497
test at
src/bay_events_to_candidate_visits.rb:43
<top> at
src/bay_events_to_candidate_visits.rb:46
invokeWithArguments at java/lang/invoke/MethodHandle.java:627
```
I’m at a bit of a loss on how to debug this.
I did try to figure out what Jackson artifacts are in my classpath, and it
looks like a bit of a mess:
```
$ cat Jarfile.lock | grep jackson
- org.codehaus.jackson:jackson-jaxrs:jar:1.9.13
- org.codehaus.jackson:jackson-core-asl:jar:1.9.13
- com.fasterxml.jackson.core:jackson-annotations:jar:2.5.0
- com.fasterxml.jackson.core:jackson-databind:jar:2.5.4
- org.codehaus.jackson:jackson-xc:jar:1.9.13
- org.codehaus.jackson:jackson-mapper-asl:jar:1.8.5
- com.fasterxml.jackson.core:jackson-core:jar:2.5.4
```
I’d appreciate any suggestions for how to resolve this!
Thanks,
Avi
Re: java.lang.ClassNotFoundException: org.codehaus.jackson.annotate.JsonClass
Posted by Avi Flax <av...@aviflax.com>.
On Tue, Feb 9, 2016 at 12:01 PM, Yi Pan <ni...@gmail.com> wrote:
> Could you try to fix the jackson version to 1.9.13 in your build first?
That fixed it! Thank you!
> It seems like a incompatible jackson version issue, as you have noticed in
> your classpath. It would be good if you can share your maven pom.xml as
> well.
Well, I’m using JBundler so I haven’t written a pom.xml and I don’t know if
JBundler can export one. It uses a Jarfile; here’s my current file:
```
repository :apache, "https://repository.apache.org/content/groups/public"
repository :confluent, "http://packages.confluent.io/maven/"
# This isn’t used directly by our code but I had issues wherein an older
# version was referenced by one of the top-level dependencies — and
# it was incompatible with… something else, not sure what. So I’m explicitly
# listing the latest version here to attempt to resolve that.
jar 'org.codehaus.jackson:jackson-mapper-asl', '1.9.13'
jar 'io.confluent:kafka-avro-serializer', '2.0.0'
jar 'org.apache.samza:samza-api', '0.10.0'
jar 'org.apache.samza:samza-core_2.10', '0.10.0'
jar 'org.apache.samza:samza-shell', '0.10.0'
jar 'org.apache.samza:samza-yarn_2.10', '0.10.0'
jar 'org.apache.samza:samza-kv_2.10', '0.10.0'
jar 'org.apache.samza:samza-kv-rocksdb_2.10', '0.10.0'
jar ‘org.apache.samza:samza-kafka_2.10', '0.10.0'
```
Thanks again!
Avi
Re: java.lang.ClassNotFoundException: org.codehaus.jackson.annotate.JsonClass
Posted by Yi Pan <ni...@gmail.com>.
Hi, Avi,
Could you try to fix the jackson version to 1.9.13 in your build first? It
seems like a incompatible jackson version issue, as you have noticed in
your classpath. It would be good if you can share your maven pom.xml as
well.
Thanks!
-Yi
On Mon, Feb 8, 2016 at 1:12 PM, Avi Flax <av...@aviflax.com> wrote:
> Hi all, I’m trying to implement a Samza task in Ruby with JRuby but I seem
> to be having some trouble with dependencies.
>
> I’m using JBundler — https://github.com/mkristian/jbundler — to add
> dependencies. I’m pretty sure it’s a wrapper around Maven.
>
> My Jarfile contains this:
>
> ```
> repository :apache, "https://repository.apache.org/content/groups/public"
> repository :confluent, "http://packages.confluent.io/maven/"
>
> jar 'io.confluent:kafka-avro-serializer', '~>2.0.0'
> jar 'org.apache.samza:samza-api', '~>0.10.0'
> jar 'org.apache.samza:samza-core_2.10', '~>0.10.0'
> jar 'org.apache.samza:samza-shell', '~>0.10.0'
> jar 'org.apache.samza:samza-yarn_2.10', '~>0.10.0'
> jar 'org.apache.samza:samza-kv_2.10', '~>0.10.0'
> jar 'org.apache.samza:samza-kv-rocksdb_2.10', '~>0.10.0'
> jar 'org.apache.samza:samza-kv-inmemory_2.10', '~>0.10.0'
> jar ‘org.apache.samza:samza-kafka_2.10', '~>0.10.0'
> ```
>
> When I try to run one of my tests, I’m getting this:
>
> ```
> Unhandled Java exception: java.lang.NoClassDefFoundError:
> org/codehaus/jackson/annotate/JsonClass
> java.lang.NoClassDefFoundError: org/codehaus/jackson/annotate/JsonClass
> findDeserializationType at
> org/codehaus/jackson/map/introspect/JacksonAnnotationIntrospector.java:524
> modifyTypeByAnnotation at
> org/codehaus/jackson/map/deser/BasicDeserializerFactory.java:729
> createBeanDeserializer at
> org/codehaus/jackson/map/deser/BeanDeserializerFactory.java:427
> _createDeserializer at
> org/codehaus/jackson/map/deser/StdDeserializerProvider.java:398
> _createAndCache2 at
> org/codehaus/jackson/map/deser/StdDeserializerProvider.java:307
> _createAndCacheValueDeserializer at
> org/codehaus/jackson/map/deser/StdDeserializerProvider.java:287
> findValueDeserializer at
> org/codehaus/jackson/map/deser/StdDeserializerProvider.java:136
> findTypedValueDeserializer at
> org/codehaus/jackson/map/deser/StdDeserializerProvider.java:157
> _findRootDeserializer at
> org/codehaus/jackson/map/ObjectMapper.java:2461
> _readMapAndClose at
> org/codehaus/jackson/map/ObjectMapper.java:2395
> readValue at
> org/codehaus/jackson/map/ObjectMapper.java:1602
> fromBytes at
> org/apache/samza/serializers/JsonSerde.scala:42
> bootstrap at
>
> org/apache/samza/coordinator/stream/CoordinatorStreamSystemConsumer.java:148
> run at
> org/apache/samza/job/JobRunner.scala:113
> main at
> org/apache/samza/job/JobRunner.scala:66
> invoke at java/lang/reflect/Method.java:497
> test at
> src/bay_events_to_candidate_visits.rb:43
> <top> at
> src/bay_events_to_candidate_visits.rb:46
> invokeWithArguments at
> java/lang/invoke/MethodHandle.java:627
> ```
>
> I’m at a bit of a loss on how to debug this.
>
> I did try to figure out what Jackson artifacts are in my classpath, and it
> looks like a bit of a mess:
>
> ```
>
> $ cat Jarfile.lock | grep jackson
>
> - org.codehaus.jackson:jackson-jaxrs:jar:1.9.13
>
> - org.codehaus.jackson:jackson-core-asl:jar:1.9.13
>
> - com.fasterxml.jackson.core:jackson-annotations:jar:2.5.0
>
> - com.fasterxml.jackson.core:jackson-databind:jar:2.5.4
>
> - org.codehaus.jackson:jackson-xc:jar:1.9.13
>
> - org.codehaus.jackson:jackson-mapper-asl:jar:1.8.5
>
> - com.fasterxml.jackson.core:jackson-core:jar:2.5.4
>
> ```
>
>
> I’d appreciate any suggestions for how to resolve this!
>
>
> Thanks,
>
> Avi
>