找不到使用自定义Jackson ObjectMapper的类的描述

时间:2019-06-13 00:08:21

标签: spring-boot jackson spring-restdocs spring-auto-restdocs

我遇到了Spring AutoRest Docs的问题。似乎源于此代码

.alwaysDo<DefaultMockMvcBuilder>(JacksonResultHandlers.prepareJackson(objectMapper))

完整配置:

    mockMvc = MockMvcBuilders
        .webAppContextSetup(webApplicationContext)
        .alwaysDo<DefaultMockMvcBuilder>(JacksonResultHandlers.prepareJackson(objectMapper))
        .alwaysDo<DefaultMockMvcBuilder>(document("{class-name}/{method-name}",
            Preprocessors.preprocessRequest(Preprocessors.prettyPrint()),
            Preprocessors.preprocessResponse(Preprocessors.prettyPrint())))
        .apply<DefaultMockMvcBuilder>(documentationConfiguration(this.restDocumentation)
            .uris()
            .withScheme("https")
            .withHost("localhost")
            .and().snippets()
            .withDefaults(CliDocumentation.curlRequest(),
                HttpDocumentation.httpRequest(),
                HttpDocumentation.httpResponse(),
                AutoDocumentation.requestFields()
                    .failOnUndocumentedFields(true),
                AutoDocumentation.responseFields()
                    .failOnUndocumentedFields(true),
                AutoDocumentation.pathParameters(),
                AutoDocumentation.requestParameters(),
                AutoDocumentation.description(),
                AutoDocumentation.methodAndPath(),
                AutoDocumentation.section(),
                AutoDocumentation.links()))
        .build()

我对杰克逊做了一些自定义,而autorest似乎不喜欢这样。当我输入objectMapper时,会收到以下警告:

No Javadoc found for class java.lang.Object

No Javadoc found for class java.io.Serializable

No description found for constraint com.domain.CLASS: Can't find resource for bundle java.util.PropertyResourceBundle, key com.domain.CLASS.description

我尝试注入其他方法来获取对象映射器,包括

MappingJackson2HttpMessageConverter
ObjectMapperResolver

我也尝试过启动一个新的Spring Boot应用程序,没有遇到任何错误。但是,如果删除prepareJackson,则不会再显示任何警告,则自动生成的文档中将没有数据。

我已经在这个问题上停留了很长时间,并且不确定如何解决它。任何指导将不胜感激。

1 个答案:

答案 0 :(得分:0)

对此进行快速更新。

Florian对此发表了GitHub问题,所有问题均已在2.0.6中修复。因此,只要使用2.0.6,就可以了。

请参见https://github.com/ScaCap/spring-auto-restdocs/issues/336

感谢Florian和Auto Rest Doc团队!