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