控制器未出现在 swagger-ui.html 中

2024-02-06

我使用 Swagger 2 和非 spring-boot,我也可以在 Tomcat 上部署我的应用程序并成功运行它。但控制器并没有出现在swagger-ui.html,只显示带有绿色招摇标题的空白页面。我在这个问题上花了两天时间。你能给我一些建议吗?

@Controller 表示类如下:

 @Api
 @Controller
 @RequestMapping("/user")
 public class UserController {

 protected Logger logger = LoggerFactory.getLogger(UserController.class);

 @Autowired
 private UserService userService;

 @RequestMapping("/showInfos")
 public @ResponseBody Object showUserInfos(){
    logger.info("-----------------------showUserInfos-----------------------");
    List<UserInfo> userInfos = userService.getUsers();
    return userInfos;
}

我的spring-mvc.xml配置如下:

    <mvc:annotation-driven/>
<!@Controller inject bean -->
<context:component-scan base-package="com.roy.demo , version" /> 

<!-- Enables swgger ui -->
<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/" />
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/" /> 

<!-- Include a swagger configuration -->
<bean name="/applicationSwaggerConfig" class="com.roy.demo.config.ApplicationSwaggerConfig" />

我的swagger配置类如下:

@EnableSwagger2  
public class ApplicationSwaggerConfig {

private static final Logger LOGGER = Logger.getLogger(ApplicationSwaggerConfig.class);

@Bean
public Docket api() {
    LOGGER.info("################################ into Docket api() #####################################");
    return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.roy.demo.controller"))
            .paths(PathSelectors.any())
            .build();
}

}

我的 maven pom.xml swagger2 依赖项如下:

        <!-- Swagger 2.0 -->
    <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-core</artifactId>
        <version>1.5.3</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.5.0</version>
    </dependency>

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.5.0</version>
    </dependency>

下面是我输入端点 url 时的结果:http://localhost:8080/Spring_SpringMVC_Mybatis/swagger-ui.html http://localhost:8080/Spring_SpringMVC_Mybatis/swagger-ui.html


我对 Swagger 也很陌生,但下面的代码我用于我的 swagger 配置,它对我来说效果很好。我在课堂上完成了配置。

配置类。

@Configuration
@EnableWebMvc
@EnableSwagger2
@ComponentScan(basePackages = "com.*")
@PropertySource(value = { "classpath:log4j.properties" })
public class SpringConfig extends WebMvcConfigurerAdapter {
    @Bean
            public Docket api() { 
                return new Docket(DocumentationType.SWAGGER_2)  .apiInfo(apiInfo()).directModelSubstitute(LocalDate.class, String.class).genericModelSubstitutes(ResponseEntity.class)
                        .useDefaultResponseMessages(false)
                  .select()           
                  .apis(RequestHandlerSelectors.any())              
                  .paths(PathSelectors.any())                        
                  .build();                                           
            }
            @Override
            public void addResourceHandlers(ResourceHandlerRegistry registry) {
                registry.addResourceHandler("swagger-ui.html")
                  .addResourceLocations("classpath:/META-INF/resources/");
                registry.addResourceHandler("/webjars/**")
                  .addResourceLocations("classpath:/META-INF/resources/webjars/");
            }
    @SuppressWarnings("deprecation")
    private ApiInfo apiInfo() {
        ApiInfo apiInfo = new ApiInfo(
          "API",
          "API for xxxx",
          "API TOS",
          "Terms of service",
          "xxx",
          "License of API",
          "");
        return apiInfo;
    }

}

Maven 依赖:

<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.4.0</version>
        </dependency>
<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.4.0</version>
        </dependency>

控制器类

@RestController
@Api(value="users", description="Endpoint for user management")
public class Controller {
}

端点网址:

https://localhost:8080/AppName/swagger-ui.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

控制器未出现在 swagger-ui.html 中 的相关文章

随机推荐

  • 最小成本强连通有向图

    我有一个强连接的有向图 即图 G 中的每对节点 i j 都有一条从 i 到 j 和 j 到 i 的路径 我希望从该图中找到一个强连通图 使得所有边的总和最小 换句话说 我需要以这样的方式删除边 即删除它们后 图仍然是强连接的 并且边总和的成
  • 反应具有比例依赖性的本机动画旋转圆圈

    我有一个动画组件 您可以在其中选择十七个圆圈之一 到目前为止看起来像这样 我想添加一个动画 当圆靠近中心时 它会缩放圆 我怎么做 到目前为止 我尝试将圆的 x 值计算为Math sin index deltaTheta Math PI 18
  • TPL 取消延续从未调用已取消的任务

    我的代码中有以下使用 TPL 的设置 我的班级中有一个字段 private CancellationTokenSource cancellationTokenSource 每次我创建使用特定取消令牌的 TPL 任务时 都会实例化此 Canc
  • 加载配置文件时发生错误:无法开始监视“\\share”的更改

    上周我也遇到了同样的问题 在启用模拟后它自行解决了 现在 我已将此盒子移至其他位置 现在再次收到它 然而 这一次的描述性要少得多 我收到的唯一错误是 An error occurred loading a configuration fil
  • boost::make_shared 没有调用(放置)运算符 new 吗?

    我第一次使用 boost make shared 创建共享指针指向的对象 主要是因为我们的代码太慢了 而单一分配确实有助于提高性能 在 硬手动方式 修复了一些内存泄漏之后 我决定通过覆盖所有相关类的新运算符来实现一个简单的内存泄漏检测器 只
  • 未遵循 Java log4j2 记录器级别

    所以我正在尝试学习 log4j2 并关注记录器及其级别和父级传播 目前我的源层次结构运行是 main java calculatorMain Main java someClass2 java someClass1 java resourc
  • PHP:选择添加到 Amazon S3 文件夹的最新文件

    我正在开发自动更新解决方案 并使用 Amazon S3 进行分发 我希望它的工作方式如下 我将文件上传到 s3 文件夹 自动 PHP 脚本检测到已添加新文件并通知客户端 为此 我需要以某种方式列出亚马逊存储桶文件夹中的所有文件 并找到最后添
  • 将 Windows 设备路径解析为驱动器盘符

    如何解析 NT 样式的设备路径 例如 Device CdRom0 到其逻辑驱动器号 例如G 编辑 不幸的是 卷名称与设备路径不同GetVolumePathNamesForVolumeName 行不通的 希望下面的代码足以解决这个问题 在初始
  • Linux异步IO的状态?

    我在这里问这个问题是因为谷歌搜索会让你在档案馆中进行一次愉快的旅行 但没有任何关于当前状态的提示 如果你通过 Google 进行搜索 你会发现异步 IO 在 2001 年到 2003 年期间非常流行 到 2006 年 一些类似的东西epol
  • 仅允许特定电子邮件地址在 Rails 应用程序中注册 (Devise)

    我正在使用 Devise 在我的 Rails 应用程序中验证和注册用户 但是 我只希望拥有特定结尾电子邮件的用户能够注册并访问它 比方说 xyz com 我需要做什么来反映这一点 如果您想在注册后限制用户访问 请使用 before filt
  • 在 C# 中从图像的 EXIF 获取 GPS 数据

    我正在开发一个系统 允许使用 ASP NET C 将图像上传到服务器 我正在处理图像 一切正常 我设法找到一种方法来读取创建日期 EXIF 数据并将其解析为日期时间 这也很好用 我现在正在尝试从 EXIF 读取 GPS 数据 我想捕获纬度和
  • 使用 pg-promise 记录特定的 postgresql 查询

    我在用pg 承诺 https github com vitaly t pg promise与 Nodejs 一起打包以执行 PostgreSQL 查询 我想查看执行的查询 仅特定查询 例如 我想调试的一个查询 我可以看到一种推荐的方法是使用
  • 整数值比较

    我是一名 Java 编码新手 我刚刚读到可以在 API 中用三种不同的方式描述整数类的变量 我有以下代码 if count compareTo 0 System out println out table count 这是在循环内部并且仅输
  • 当弹性项目换行到新行时,我可以将 CSS 应用于它吗?

    wrapper border 5px solid pink display flex flex wrap wrap justify content center a fc background color purple width 300p
  • NSTokenField 不允许我输入 tokenField:completionsForSubstring:... 之外的其他字符串返回

    我的问题是 NSTokenField 不允许我输入我想要的任何文本 它只允许我输入 tokenField completionsForSubstring indexOfToken indexOfSelectedItem 返回的 NSArra
  • 在Python中复制基类'__init__'签名的正确方法是什么?

    如果子类没有定义自己的 init 方法时 基类的构造函数 因此其签名 会自动继承 但是应该如何定义子类 init 继承基类签名的方法 自动 例如 class Base def init self arg1 arg2 self arg1 ar
  • 此解析操作已经结束。 Autofac、Automapper 和 IMemberValueResolver

    我对 Autofac 和 Automapper 有疑问 在我的 WebApi 中 我有以下代码来注册我的类 public static void Initialize HttpConfiguration config IContainer
  • 如何将参数传递给sql'in'语句?

    我想创建这个查询 select from products where number in 123 234 456 但我找不到任何使用 Npgsql 和 NpgsqlParameter 实现此目的的示例 我尝试这样 string numbe
  • com.sun.faces.config.ConfigureListener 的配置

    我正在审查当前的 JSF 项目 其中web xml配置包含 FacesServlet 配置在 xhtml the com sun faces config ConfigureListener 我正在使用 JSF 2 2 和 Mojarra
  • 控制器未出现在 swagger-ui.html 中

    我使用 Swagger 2 和非 spring boot 我也可以在 Tomcat 上部署我的应用程序并成功运行它 但控制器并没有出现在swagger ui html 只显示带有绿色招摇标题的空白页面 我在这个问题上花了两天时间 你能给我一