Stream Enrich: force jackson-databind to 2.9.3
See original GitHub issueRelated to #3701 and #3702, we see a java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.node.ArrayNode.<init>(Lcom/fasterxml/jackson/databind/node/JsonNodeFactory;Ljava/util/List;)
error at runtime when using R103 (which is equivalent to master at the time of writing).
The solution for spark-enrich in #3702 fixes the problem in stream-enrich. That is, downgrading geoip2
to version 2.5.0 for stream-enrich. I am unsure if this is the correct approach. If it is, I can easily submit a PR.
Steps to reproduce:
git clone https://github.com/snowplow/snowplow
cd 3-enrich/stream-enrich
sbt "project kinesis" assembly
# Run target/scala-2.11/snowplow-stream-enrich-kinesis-0.16.0.jar with a config setup for Kinesis.
java -jar ...
We see ERROR com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker - Worker.run caught exception, sleeping for 1000 milli seconds!
and the underlying error is java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.node.ArrayNode.<init>(Lcom/fasterxml/jackson/databind/node/JsonNodeFactory;Ljava/util/List;)
.
Issue Analytics
- State:
- Created 5 years ago
- Comments:10 (7 by maintainers)
Top GitHub Comments
I was able to find the root cause:
publishLocal
for SCE and that includesjackson-databind-2.9.3
publish
and that includesjackson-databind-2.2.3
(c.f. http://search.maven.org/#artifactdetails|com.snowplowanalytics|snowplow-common-enrich_2.11|0.32.0|jar)Apparently
publishLocal
relies on ivy2 whereaspublish
relies on maven and I guess they have different dependency resolution mechanisms.Reopening til we get to the bottom of this.
Also you might be interested in https://github.com/snowplow/snowplow-docker 👍