首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在使用MVC REST的SpringBoot项目中,返回406响应。

在使用MVC REST的SpringBoot项目中,返回406响应。
EN

Stack Overflow用户
提问于 2021-10-13 00:00:26
回答 1查看 74关注 0票数 0

我正在开发一个SpringBoot项目,该项目使用常规的MVC机制来公开REST。

在一个特定的GET中,我得到了406个HTTP响应。

以下是我的Controller方法的外观:

代码语言:javascript
运行
复制
    @GetMapping(path = "/analysis/detail/{analysisId}")
    public ResponseEntity<AnalysisDetailResponse> getAnalysisDetails(
            @PathVariable @NotNull Long analysisId) throws BusinessException {
        AnalysisDetailResponse analysisDetailResponse = analysisService.getAnalysisDetailsByAnalysisId(analysisId);
//        return ResponseEntity.ok(analysisService.getAnalysisDetailsByAnalysisId(analysisId));
        return ResponseEntity.ok(analysisDetailResponse);
    }

AnalysisDetailResponse是使用Lombok创建的(在其他API的情况下,Lombok运行得非常完美)

代码语言:javascript
运行
复制
@Builder
@ToString
public class AnalysisDetailResponse {

    @NotNull
    private Long id;

    @NotNull
    private AnalysisStatus state;

    private String failedSummary;

    @NotNull
    @NotEmpty
    @Valid
    private List<PostDetail> posts;

    @Builder
    @ToString
    private static class PostDetail {

        @NotNull
        private Long id;

        @NotNull
        private float score;

        @NotNull
        private String body;

        private List<String> childBodyList;
    }
}

我已经验证了整个响应对象的内容,它似乎是完美的。然而,答复总是406。

我需要JSON格式的响应,因此,明确提到响应类型并不是必要的,IMO。

尽管如此,我还是尝试将以下内容添加到@GetMapping注释中,但没有发现任何结果:

代码语言:javascript
运行
复制
produces = MediaType.APPLICATION_JSON_VALUE

大多数相关帖子都建议添加jackson-mapper-asljackson-core-asl库。我试过了,但没什么区别

请注意,正是这个特定的API导致了问题。在同一个Controller中定义的其他API运行良好。

请建议..。

更新:我正在尝试使用访问,并且我确实尝试显式地添加Accept标头参数。没有运气

EN

回答 1

Stack Overflow用户

发布于 2021-10-14 00:21:14

通过更新Response对象类的定义,最终能够完成这项工作。Lombok被使用,我将@Data注释应用于响应类以及静态内部类。其动机是将多个Lombok注释合并为一个,用一个更详细的集合取代@Data注释,包括@NoArgsConstructor, @AllArgsConstructor, @Getter, @Setter,解决了这个问题。

因此,在这个场景中,一个或多个Lombok注释才是真正的罪魁祸首:@ToString, @EqualsAndHashCode, @RequiredArgsConstructor

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

https://stackoverflow.com/questions/69548203

复制
相关文章

相似问题

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