【问题标题】:How to solve error "Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonView"如何解决错误“线程“主”java.lang.NoClassDefFoundError:com/fasterxml/jackson/annotation/JsonView中的异常”
【发布时间】:2021-03-16 18:59:31
【问题描述】:

我正在尝试使用杰克逊库 ObjectMapper 评估 json 字符串。我添加了 jackson-annotaion 、jackson-databindjackson-core 依赖项,其中 相同版本 pom.xml 文件也是。但是代码给出了以下错误。我检查了类似的问题,但我没有像他们的情况那样版本不匹配。

Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonView
    at com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector.<clinit>(JacksonAnnotationIntrospector.java:37)
    at com.fasterxml.jackson.databind.ObjectMapper.<clinit>(ObjectMapper.java:348)
    at com.company.EvaluateJson.evaluate(EvaluateJson.java:49)
    at com.company.DataMapper.doMapping(DataMapper.java:58)
    at com.company.DataMapper.getRequest(DataMapper.java:49)
    at com.company.Main.main(Main.java:119)
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.annotation.JsonView
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 6 more

我的代码如下:

 try{
            ObjectMapper objectMapper=new ObjectMapper();

            String jString=objectMapper.writeValueAsString(requestMap);
            JsonNode jsonNode=objectMapper.readTree(jString);
            System.out.println("From jsonNode:"+jsonNode.get("name"));
        }catch (JsonGenerationException e){
            e.printStackTrace();
        }catch (JsonMappingException e){
            e.printStackTrace();
        }catch (IOException e){
            e.printStackTrace();
        }

pom.xml

<dependencies>
       <dependency>
           <groupId>com.fasterxml.jackson.core</groupId>
           <artifactId>jackson-core</artifactId>
           <version>2.12.0</version>
       </dependency>
       <dependency>
           <groupId>com.fasterxml.jackson.core</groupId>
           <artifactId>jackson-databind</artifactId>
           <version>2.12.0</version>
       </dependency>
       <dependency>
           <groupId>com.fasterxml.jackson.core</groupId>
           <artifactId>jackson-annotations</artifactId>
           <version>2.12.0</version>
       </dependency>
       <dependency>
           <groupId>com.google.code.gson</groupId>
           <artifactId>gson</artifactId>
           <version>2.3.1</version>
       </dependency>
       <dependency>
           <groupId>com.jayway.jsonpath</groupId>
           <artifactId>json-path</artifactId>
           <version>2.4.0</version>
       </dependency>
   </dependencies>

【问题讨论】:

  • 请出示你的 pom
  • @Jens 在问题中添加了 pom。
  • 你给我们看的部分是&lt;dependencyManagement&gt;下的吗?
  • @Jens 是的。依赖项在
  • 纯粹的外在

标签: java json jackson jackson-databind


【解决方案1】:

您可以尝试将其添加到您的 pom.xml 中

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>${jackson.version}</version>
</dependency>

【讨论】:

猜你喜欢
  • 2021-09-04
  • 2015-08-27
  • 1970-01-01
  • 2017-11-26
  • 1970-01-01
  • 2020-09-26
  • 1970-01-01
  • 1970-01-01
  • 2021-12-09
相关资源
最近更新 更多