Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 控制器不显示在swagger-ui.html中_Spring Mvc_Swagger 2.0 - Fatal编程技术网

Spring mvc 控制器不显示在swagger-ui.html中

Spring mvc 控制器不显示在swagger-ui.html中,spring-mvc,swagger-2.0,Spring Mvc,Swagger 2.0,我将Swagger 2与非spring引导一起使用,我还可以在Tomcat上部署我的应用程序并成功运行它。但是控制器没有出现在swagger ui.html中,只显示带有绿色swagger标题的空白页面。我在这个问题上花了两天时间。你能给我一些建议吗 @控制器指以下类别: @Api @Controller @RequestMapping("/user") public class UserController { protected Logger logger = LoggerFac

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

@控制器指以下类别:

 @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;
}
}

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

    <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" />
@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();
}
        <!-- 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>

昂首阔步


我对斯威格也很陌生,但下面的代码是我在斯威格配置中使用的,对我来说效果很好。我在课堂上完成了配置

配置类

@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>
端点URL:

https://localhost:8080/AppName/swagger-ui.html

请清除浏览器缓存,然后重试。 或者使用匿名标签
它对我很有效

我碰巧有一个控制器没有显示出来。问题是kotlin类没有声明任何包。在控制器中声明一个包修复了该问题。

什么是@controller不能在swagger-ui中显示。为swagger共享您的配置类请遵循以下答案:-我仍然无法解决此问题,请参见我在上面剪下的图片。您是否更改了配置?是的,我和您对swagger配置类所做的一样,但是仍然不能工作,你的代码,但它在我的机器上不工作,可能缺少一些依赖项。从pom中删除swagger核心依赖项也放!类级别的Api注释并删除@ApiOperation(值=”获取用户列表", notes=“”)并将.api从swaggerconfig类更改为RequestHandlerSelectors.any(),然后重试一次
https://localhost:8080/AppName/swagger-ui.html