项目集成swagger,访问不到swagger页面

项目集成swagger


前言

项目集成swagger这个没啥好整的,maven项目就在pom文件导入依赖,servlet项目就在lib目录下导入jar包,这些过程略。


一、背景

我这里是springboot+maven,swagger集成之后,项目启动,访问地址 ip:端口/项目路径/doc.html
例如自己电脑启动项目之后访问路径为
http://127.0.0.1:9001/doc.html
这个访问路径是未设置项目路径的,
项目路径介绍:
Context path of the application. 应用的上下文路径,也可以称为项目路径,是构成url地址的一部分。

springboot关于项目路径的配置:

1、springboot 2.0之前,配置为 server.context-path=/cattle-agent

2、springboot 2.0之后,配置为 server.servlet.context-path=/cattle-agent

二、问题复现

1.Full authentication is required to access this resource

在接入swagger之后,访问页面,会报错,错误提示 访问此资源需要身份验证,因为swagger这个不需要身份验证,处理方法:新建一个config类,这里使用的是swagger-ui,如果需要增强版本或者其他版本的swagger-ui样式,去百度搜。

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.resource.ContentVersionStrategy;
import org.springframework.web.servlet.resource.VersionResourceResolver;

@Configuration
@Slf4j
public class WebConfig implements WebMvcConfigurer {



    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        VersionResourceResolver versionResourceResolver = new VersionResourceResolver()
                .addVersionStrategy(new ContentVersionStrategy(), "/**");
        // 配置静态文件访问路径
//        registry
//                .addResourceHandler("/**")
//                .addResourceLocations("classpath:/static/")
//                .setCachePeriod(2592000)
//                .resourceChain(true)
//                .addResolver(versionResourceResolver);
        // 解决swagger无法访问
        registry
                .addResourceHandler("/swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        // 解决swagger的js文件无法访问
        registry
                .addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
        registry
                .addResourceHandler("doc.html")
                .addResourceLocations("classpath:/META-INF/resources/");

    }
}

2.Illegal DefaultValue null for parameter type integer

加入上述配置之后,启动项目,访问页面,可以显示出接口文档了,但是在控制台会出现这个问题 Illegal DefaultValue null for parameter type integer
解决办法:
pom文件增加如下依赖

<!--  解决 Illegal DefaultValue null for parameter type integer    异常  -->
		<dependency>
			<groupId>io.swagger</groupId>
			<artifactId>swagger-annotations</artifactId>
			<version>1.5.21</version>
		</dependency>
		<dependency>
			<groupId>io.swagger</groupId>
			<artifactId>swagger-models</artifactId>
			<version>1.5.21</version>
		</dependency>

总结

刷新maven,启动项目,swagger正常访问,控制台无报错!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值