首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring5.0.4& Jackson2在启动时抛出例外

Spring5.0.4& Jackson2在启动时抛出例外
EN

Stack Overflow用户
提问于 2018-05-06 10:05:27
回答 1查看 849关注 0票数 1

我试图做简单的休息服务,但面临两个问题。1. REST控制器的任何方法返回406 http错误;

代码语言:javascript
复制
@GetMapping(value = "/getUser/{id}", headers = "Accept=application/json",
        produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public ResponseEntity<Object> getUser(@PathVariable(value = "id")Long id) {
    if (id == null) return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
    UserInfo userInfo = userService.get(id);


    if (userInfo == null) return new ResponseEntity<>(HttpStatus.NOT_FOUND);
    return new ResponseEntity<>(userInfo, HttpStatus.OK);
}
@GetMapping(value = "/getUsers", headers = "Accept=application/json",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public List<UserInfo> getUsers()
{
    return userService.getAll();
}

所以谷歌告诉我,这个问题可能是因为缺少Jackson2依赖关系。但是,添加此依赖项会导致此错误,添加较低的版本将导致相同的输出或406。

代码语言:javascript
复制
 <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.4.4</version>
    </dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.4.4</version>
</dependency>


> 06-May-2018 15:36:45.477 WARNING [http-nio-25565-exec-3]
> org.springframework.context.support.AbstractApplicationContext.refresh
> Exception encountered during context initialization - cancelling
> refresh attempt:
> org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'requestMappingHandlerAdapter' defined in
> class path resource
> [org/springframework/web/servlet/config/annotation/DelegatingWebMvcConfiguration.class]:
> Bean instantiation via factory method failed; nested exception is
> org.springframework.beans.BeanInstantiationException: Failed to
> instantiate
> [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter]:
> Factory method 'requestMappingHandlerAdapter' threw exception; nested
> exception is java.lang.NoClassDefFoundError:
> com/fasterxml/jackson/databind/exc/InvalidDefinitionException

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-25 11:38:40

在Spring 5或更高版本中,BeanInstantiationException类负责将java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/exc/InvalidDefinitionException作为嵌套异常抛出。

从上面的异常可以看出,此异常的根本原因是缺少类InvalidDefinitionException.。此类从2.9.0版本起已在jackson databind API中引入。

因此,要解决这个问题,只需使用版本2.9.0或更高版本添加jackson数据库依赖项

代码语言:javascript
复制
        **<groupId>com.fasterxml.jackson.core</groupId>**
代码语言:javascript
复制
        **<artifactId>jackson-databind</artifactId>**
代码语言:javascript
复制
        **<version>2.9.0</version>**

谢谢!!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50198482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档