Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java swagger JSON文件上的空值_Java_Rest_Jersey_Jackson_Swagger - Fatal编程技术网

Java swagger JSON文件上的空值

Java swagger JSON文件上的空值,java,rest,jersey,jackson,swagger,Java,Rest,Jersey,Jackson,Swagger,我对通过Java注释生成的JSON swagger文档有一些问题(其余部分使用Jersey公开,序列化由Jackson处理)。查看生成的招摇过市,它包括null值,这会导致招摇过市UI崩溃(生成的YAML没有这个问题) 这里是JSON的摘录: { “招摇过市”:“2.0”, “info”:{“description”:null,“version”:“1.0.0”,“title”:“,“termsOfService”:null,“contact”:null,“license”:null}, “主机

我对通过Java注释生成的JSON swagger文档有一些问题(其余部分使用Jersey公开,序列化由Jackson处理)。查看生成的招摇过市,它包括
null
值,这会导致招摇过市UI崩溃(生成的YAML没有这个问题)

这里是JSON的摘录:

{
“招摇过市”:“2.0”,
“info”:{“description”:null,“version”:“1.0.0”,“title”:“,“termsOfService”:null,“contact”:null,“license”:null},
“主机”:“本地主机:8080”,
“基本路径”:“/api”,
“标记”:[{“名称”:“数据集”,“描述”:null,“外部文档”:null}],
“方案”:[“http”],
“消费”:空,
“products”:空,
“路径”:{
“/dataset”:{
“获取”:{
“标记”:[“数据集”],
“摘要”:“数据集”,
“说明”:“所有可用数据集”,
“操作ID”:“数据集获取”,
“方案”:空,
“消费”:空,
“products”:[“application/json”],
“参数”:[],
“答复”:{
"200": {
“说明”:“可用数据集”,
“模式”:{
“类型”:“对象”,
“格式”:空,
“示例”:空,
“xml”:null,
“位置”:空,
“描述”:空,
“标题”:空,
“只读”:空,
“附加属性”:{
“类型”:“对象”,
“格式”:空,
“示例”:空,
“xml”:null,
“位置”:空,
“描述”:空,
“标题”:空,
“只读”:空,
“附加属性”:{
“类型”:“对象”,
“格式”:空,
“示例”:空,
“xml”:null,
“位置”:空,
“描述”:空,
“标题”:空,
“只读”:空,
“属性”:空
}
}
},
“示例”:空,
“标题”:空
}
},
“安全”:空,
“externalDocs”:空,
“已弃用”:null
},
“头”:空,
“post”:空,
“put”:空,
“删除”:空,
“选项”:空,
“补丁”:空,
“参数”:空
}
},
“参数”:空,
“响应”:空,
“externalDocs”:空,
“SecurityRequest”:空
}
建议将对象映射器设置为省略
null
值以解决此问题,但实际情况是,我不知道在哪里或如何轻松访问映射器,在REST服务类上使用
NON_null
注释是毫无意义的。还有一个类似的问题,但我不使用Spring(因此我没有地方为它设置自定义映射器或设置)

我过去使用的是Swagger,但配置不同(加上wink,现在我使用的是Jersey),没有这个问题

如果存在一些明显的错误配置,这是我的
web.xml


我的项目
运动衫
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.classnames
io.swagger.jersey.listing.ApiListingResourceJSON,
org.something.DatasetApi
1.
运动衫
/服务/*
DefaultJaxrsConfig
io.swagger.jaxrs.config.defaultjaxrconfig
api.0版本
1.0.0
swagger.api.basepath
http://localhost:8080/api
2.
蜂胶滤纸
org.something.aporiginFilter
蜂胶滤纸
/*
这是我的pom.xml(我总是被招摇过市的依赖项弄糊涂):


什么组织
我的计划
0.0.1-快照
4.0.0
战争
我的项目
http://maven.apache.org
我的项目
1.6
1.6
UTF-8
回写
回归经典
1.0.13
朱尼特
朱尼特
4.8.1
测试
org.glassfish.jersey.containers
jersey容器servlet
2.6
org.glassfish.jersey.core
泽西岛客户
2.6
javax.servlet
javax.servlet-api
3.1.0
com.fasterxml.jackson.jaxrs
jackson jaxrs json提供程序
2.4.2
昂首阔步
大摇大摆的运动衫2-jaxrs
1.5.4
最后,为了完整起见,这是我的Java类的摘录:

package org.something;
导入io.swagger.annotations.Api;
导入io.swagger.annotations.api操作;
导入io.swagger.annotations.ApiResponse;
导入io.swagger.annotations.ApiResponses;
导入java.util.Map;
导入javax.ws.rs.GET;
导入javax.ws.rs.Path;
导入javax.ws.rs.products;
导入javax.ws.rs.core.Response;
导入org.slf4j.Logger;
导入org.slf4j.LoggerFactory;
@路径(“/dataset”)
@产生({“应用程序/json”})
@Api(value=“/dataset”,description=“数据集Api”)
公共类数据集{
私有静态最终记录器log=LoggerFactory.getLogger(DatasetApi.class);
@得到
@ApiOperation(value=“所有可用数据集”,notes=“可用数据集”,response=Map.class,responseContainer=“Map”)
@ApiResponses(值={@ApiResponse(code=200,message=“可用数据集的映射”,response=Map.class,responseContainer=“Map”)})
公共地图datasetGet(){
试一试{
log.info(“返回数据集列表”);
复述
<servlet>
    <servlet-name>jersey</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
    <param-name>jersey.config.server.provider.classnames</param-name>
    <param-value>
        io.swagger.jersey.listing.ApiListingResourceJSON,
        io.swagger.jaxrs.listing.SwaggerSerializers,
        org.something.DatasetApi
    </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
spring.jackson.default-property-inclusion: non_null