我只是摇摇晃晃地产生了一个有效的swagger.json . 我使用Application-config方法配置了swagger . 但是,只要我覆盖了getClasses-Method以添加swagger资源,我的JAX-RS Path-annotated类就会停止工作 . 该方法看起来像这样
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> resources = new HashSet<>();
resources.add(io.swagger.jaxrs.listing.ApiListingResource.class);
resources.add(io.swagger.jaxrs.listing.SwaggerSerializers.class);
return resources;
}
并调用super.getClasses()返回空集 . 我的项目中有太多资源,我不想手动添加 .
有没有什么方法招摇不会弄乱我以前的配置?
谢谢!
1 回答
你可以使用javax.ws.rs.core.Feature . 只需通过回调的
FeatureContext
注册类 . 使用@Provider
注释该功能将通过扫描注册 .但请注意,如果应用程序已经通过类路径扫描注册资源和提供程序,我想它也应该选择Swagger类,因为它们用
@Path
[1]和@Provider
[2]注释 . 这些是类路径扫描所寻找的注释 .我自己没有尝试过(我停止使用类路径扫描[3]),但您是否尝试过根本不注册它们?理论上,类路径扫描应该提取它 .