我有一个带有一些依赖项的胖jar,它们使用org.codehaus.jackson库来解析JSON。这是错误:
java.lang.NoSuchMethodError: org.codehaus.jackson.map.ObjectMapper.readTree([B)Lorg/codehaus/jackson/JsonNode;
在罐子里面,我可以看到这个方法:
public JsonNode readTree(byte content[])
throws IOException, JsonProcessingException {
JsonNode n = (JsonNode)_readMapAndClose(_jsonFactory.createJsonParser(content), JSON_NODE_TYPE);
return ((JsonNode) (n != null ? n : NullNode.instance));
}
代码通过'hadoop jar'命令运行,jar使用sbt程序集构建。 jackson版本或核心和映射器是1.9.2,其中包括该方法。
通过'sbt run'运行此操作不会产生错误,依赖图插件会确认所有内容都已到位。
我忽略了什么?