swagger2.9.2token设置无效
更改了包的版本后需要更改 SwaggerConfig.java 文件
原来的代码
更改后的
import io.swagger.annotations.ApiOperation;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.service.ApiKey;import springfox.documentation.service.AuthorizationScope;import springfox.documentation.service.SecurityReference;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spi.service.contexts.SecurityContext;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;import java.util.ArrayList;import java.util.List;import static com.google.common.collect.Lists.newArrayList;@Configuration@EnableSwagger2public class SwaggerConfig implements WebMvcConfigurer { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() //加了ApiOperation注解的类,才生成接口文档 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) //包下的类,才生成接口文档 .paths(PathSelectors.any()) .build() .securitySchemes(security()) .securityContexts(securityContexts()); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("开单") .version("1.0.0") .build(); } private List<ApiKey> security() { return newArrayList( new ApiKey("token", "token", "header") ); } private List<SecurityContext> securityContexts() { List<SecurityContext> securityContexts = new ArrayList<>(); securityContexts.add(SecurityContext.builder().securityReferences(defaultAuth()) //过滤要验证的路径 .forPaths(PathSelectors.regex("^(?!auth).*$")) .build()); return securityContexts; } //增加全局认证 List<SecurityReference> defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; authorizationScopes[0] = authorizationScope; List<SecurityReference> securityReferences = new ArrayList<>(); //验证增加(有许多教程说明中这个地方是Authorization,导致不能带入全局token,因为securitySchemes()方法中header写入token,所以这个地方我改为token就可以了) securityReferences.add(new SecurityReference("token", authorizationScopes)); return securityReferences; }} swagger报错 java.lang.NumberFormatException: For input string: “” java.lang.NumberFormatException: For input string: ""at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_171]at java.lang.Long.parseLong(Long.java:601) ~[na:1.8.0_171]at java.lang.Long.valueOf(Long.java:803) ~[na:1.8.0_171]at io.swagger.models.parameters.AbstractSerializableParameter.getExample(AbstractSerializableParameter.java:412) ~[swagger-models-1.5.20.jar:1.5.20]at sun.reflect.GeneratedMethodAccessor137.invoke(Unknown Source) ~[na:na]at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]at com.fasterxml.mtdcg.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:664) [mtdcg-databind-2.8.11.2.jar:2.8.11.2]at com.fasterxml.mtdcg.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:689) [mtdcg-databind-2.8.11.2.jar:2.8.11.2]at com.fasterxml.mtdcg.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155) [mtdcg-databind-2.8.11.2.jar:2.8.11.2]at com.fasterxml.mtdcg.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119) [mtdcg-databind-2.8.11.2.jar:2.8.11.2]at com.fasterxml.mtdcg.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79) [mtdcg-databind-2.8.11.2.jar:2.8.11.2]在application 文件中加入
logging: level: io.swagger.models.parameters.AbstractSerializableParameter: error