首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取HTTP状态406 -尝试在Spring REST控制器中返回对象时出现不可接受的错误

获取HTTP状态406 -尝试在Spring REST控制器中返回对象时出现不可接受的错误
EN

Stack Overflow用户
提问于 2020-10-07 19:44:44
回答 1查看 44关注 0票数 0

在这里,我试图更新一个对象,并在Spring REST控制器中以JSON格式返回更新后的对象。

控制器:

代码语言:javascript
运行
复制
@RequestMapping(value = "/user/revert", method = RequestMethod.POST)
@Produces(javax.ws.rs.core.MediaType.APPLICATION_JSON)
public ResponseEntity<UserResponse> revertUserData(@RequestParam(value = "userName") String userName) {

    User user = new User();
    UserResponse userResponse = new UserResponse();

    try {
        user = userService.findUserByName(userName);
        user.setLastName(null);

        userResponse.setEmail(user.getEmail());
        userResponse.setLastName(user.getLastName());

    } catch (Exception e) {
        return new ResponseEntity<UserResponse>(userResponse, HttpStatus.INTERNAL_SERVER_ERROR);
    }
    return new ResponseEntity<UserResponse>(userResponse, HttpStatus.OK);

}

UserResponse类:

代码语言:javascript
运行
复制
@JsonInclude(JsonInclude.Include.NON_NULL)
public class UserResponse {

  @JsonProperty("email")
  private String email;
  @JsonProperty("lastName")
  private String lastName;

  //getter and setter methids 

}

pom文件:

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

我得到的错误是:

代码语言:javascript
运行
复制
The target resource does not have a current representation that would be acceptable to the
user agent, according to the proactive negotiation header fields received in the request, and the server is
unwilling to supply a default representation.
EN

回答 1

Stack Overflow用户

发布于 2020-10-08 00:19:08

您混合了JAX-RS和Spring MVC注释:@RequestMapping来自Spring,@Produces来自JAX-RS。如果你看一下@RequestMappingdocumentation,你会看到它有一个produces参数,所以你应该有类似这样的东西:

代码语言:javascript
运行
复制
@RequestMapping(value = "/user/revert", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON)
public ResponseEntity<UserResponse> revertUserData(@RequestParam(value = "userName") String userName){
...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64243320

复制
相关文章

相似问题

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