我在提供的带有Swagger 1.5.18的Application Server中使用普通的JAXRS。我可以让Swagger带注释的类出现在swagger.json
中,但是我无法设置Swagger来扫描非带注释的类,那些只带有@Path
JAXRS注释的类。
我目前在类BeanConfig
中扩展Application
。我尝试使用Servlet
扩展DefaultJaxrsConfig
@WebInitParam(name="scan.all.resources", value="true")
,但这根本不起作用。
documentation表示设置ReaderConfig.scanAllResources
可以达到我想要的效果。但是,我不确定实现这个的好方法。有什么建议吗?
当前配置类:
@ApplicationPath("services")
public class Configuration extends Application {
public Configuration() {
BeanConfig beanConfig = new BeanConfig();
beanConfig.setVersion("1.0.0");
beanConfig.setTitle("SwaggerExample");
beanConfig.setBasePath("/SwaggerExample/services");
beanConfig.setResourcePackage("com.xxxxxx.swagger.jaxrs");
beanConfig.setScan(true);
beanConfig.setPrettyPrint(true);
}
谢谢,Brian
答案 0 :(得分:0)
通过实现ReaderListener,我确实找到了解决Swagger blog post中发布的问题的方法。但是,我认为这可以在BeanConfig级别设置。这是我的解决方案:
@SwaggerDefinition
public class ApiDefinitions implements ReaderListener {
@Override
public void afterScan(Reader reader, Swagger swagger) {
}
@Override
public void beforeScan(Reader reader, Swagger swagger) {
((DefaultReaderConfig) reader.getConfig()).setScanAllResources(true);
}
}
布赖恩