我添加了@QueryParam 作为我的 REST 注释的一部分,但是当我与 swagger 集成时,它会在生成 swagger JSON 时导致以下错误:
Exception in thread "main" java.lang.IllegalArgumentException: Unrecognized Type: [null]
at com.fasterxml.jackson.databind.type.TypeFactory._constructType(TypeFactory.java:406)
at com.fasterxml.jackson.databind.type.TypeFactory.constructType(TypeFactory.java:354)
at com.fasterxml.jackson.databind.ObjectMapper.constructType(ObjectMapper.java:1187)
at com.wordnik.swagger.jackson.ModelResolver.resolveProperty(ModelResolver.java:62)
at com.wordnik.swagger.converter.ModelConverterContextImpl.resolveProperty(ModelConverterContextImpl.java:59)
at com.wordnik.swagger.jackson.ModelResolver.resolveProperty(ModelResolver.java:160)
at com.wordnik.swagger.jackson.ModelResolver.resolveProperty(ModelResolver.java:62)
at com.wordnik.swagger.converter.ModelConverterContextImpl.resolveProperty(ModelConverterContextImpl.java:59)
at com.wordnik.swagger.converter.ModelConverters.readAsProperty(ModelConverters.java:71)
at com.wordnik.swagger.jaxrs.DefaultParameterExtension.extractParameters(DefaultParameterExtension.java:49)
at com.wordnik.swagger.jersey.SwaggerJersey2Jaxrs.extractParameters(SwaggerJersey2Jaxrs.java:100)
at com.wordnik.swagger.jaxrs.Reader.getParameters(Reader.java:542)
at com.wordnik.swagger.jaxrs.Reader.parseMethod(Reader.java:519)
at com.wordnik.swagger.jaxrs.Reader.read(Reader.java:155)
at com.wordnik.swagger.jaxrs.Reader.read(Reader.java:64)
at com.wordnik.swagger.jaxrs.Reader.read(Reader.java:55)
at com.wordnik.swagger.jaxrs.config.BeanConfig.setScan(BeanConfig.java:148)
谁知道怎么解决?是依赖错误吗?
我正在使用 swagger com.wordnik swagger-jersey2-jaxrs 版本 1.5.1-M2。有什么想法吗?
额外的方法细节
@GET
@Path("/stuff/test")
@ApiOperation(value = "Get some data", notes = "Returns some data", response = Existing.class, responseContainer = "List")
@ApiResponses(value = { @ApiResponse(code = 404, message = "some error message") })
@Timed
public Response getData(
@ApiParam(value = "filter", required = false, name = "filter") @QueryParam("filter") Optional<String> filterParam)
throws Exception {
//codes here
}
最佳答案
当我忘记在 Application.run 方法中添加以下映射细节时,我遇到了类似的错误:
environment.getObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL);
如果没有这个设置,空值的映射失败,这可能对应你的Optional。
关于json - Swagger @QueryParam 导致错误 dropwizard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29786377/