NoClassDefFoundError com/fasterxml/jackson/core/TreeNode -- json 模式验证

use*_*581 4 java json jsonschema

在 json-schema-validator 2.1.7 jar 中获取以下提到的异常:

java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/TreeNode
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
Run Code Online (Sandbox Code Playgroud)

我在用:

  • json-schema-validator 2.1.7 jar
  • json-schema-core 1.1.8 jar
  • jackson-coreutils 1..0 jar
  • jackson-databind-2.2.2 jar

代码片段如下:

            System.out.println(" inside json validation -- 0");
            JsonNode data = JsonLoader.fromString(responseString);
            System.out.println(" inside json validation -- 1");
            JsonNode jsonSchema = JsonLoader.fromResource(schemafilePath);
            System.out.println(" inside json validation -- 2");
            JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
            System.out.println(" inside json validation -- 3");
            JsonSchema schema = factory.getJsonSchema(jsonSchema);
            System.out.println(" inside json validation -- 4");
            ProcessingReport report = schema.validate(data);
Run Code Online (Sandbox Code Playgroud)

And*_*rup 5

如果我没记错的话,对“应该在哪里”jackson-databind具有传递依赖。检查您的文件夹中是否存在:jackson-coreTreeNode.m2

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.2.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

如果存在,我同意您可能遇到类路径问题,例如jackson-core类路径中的第一个版本的先前版本。

干杯,