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

Reply via email to