swagger-ui和jersey集成时,发现一个问题。如果JavaBean实例成员变量为空时,返回的json 中无此成员。
之前使用配置是:
<init-param> <param-name>jersey.config.server.provider.packages</param-name> <param-value> com.wordnik.swagger.jaxrs.json, com.mzl.ws.rest </param-value> </init-param> |
后来调整下
<!-- <init-param> <param-name>jersey.config.server.provider.packages</param-name> <param-value> com.wordnik.swagger.jaxrs.json, com.mzl.ws.rest </param-value> </init-param> --> <init-param> <param-name>javax.ws.rs.Application</param-name> <param-value>com.mzl.ws.rest.RestApplication</param-value> </init-param> |
package com.mzl.ws.rest; import org.glassfish.jersey.server.ResourceConfig; import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; publicclass RestApplication extends ResourceConfig { public RestApplication() { System.out.println("----XXX2-----"); // //服务类所在的包路径 packages("com.mzl.ws.rest"); // //注册JSON转换器 register(JacksonJsonProvider.class); } } |
问题,解决了。
需要注意的是,不要使用swagger提供的Jackson生成json工具。如下:
package com.mzl.ws.rest; import org.glassfish.jersey.server.ResourceConfig; import com.wordnik.swagger.jaxrs.json.JacksonJsonProvider; publicclass RestApplication extends ResourceConfig { public RestApplication() { System.out.println("----XXX2-----"); // //服务类所在的包路径 packages("com.mzl.ws.rest"); // //注册JSON转换器 register(JacksonJsonProvider.class); } } |