首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >春季大摇大摆:找不到地图

春季大摇大摆:找不到地图
EN

Stack Overflow用户
提问于 2016-08-09 14:55:26
回答 2查看 5.3K关注 0票数 1

我正试图用swagger来编写我的API文档。

我的REST是在spring的帮助下编写的,典型的Controller如下所示:

代码语言:javascript
复制
@Controller
@RequestMapping("/mymapping")
public class ParameterController {

@Autowired
Mydao myDao;

    /**
     * GET list
     * 
     * @return The resulting string
     */
    //produces replaced accept-header
    @RequestMapping(value="/Parameter", method=RequestMethod.GET, produces={MediaType.APPLICATION_JSON_UTF8_VALUE, "application/ld+json"})
    public @ResponseBody List<String> getAllParameters() {

    List<String> params= myDao.getAllParameters();
    return params;
    }

}

为了配置Swagger,我遵循了这里指令

  1. 在Maven中添加了一个包
  2. 创建了一个配置Java类SwaggerConfig (我只使用)
  3. 将资源处理程序添加到扩展WebMvcConfigurerAdapter的现有类中
  4. 将包"io.swagger“和"springfox.documentation”添加到扩展WebMvcConfigurerAdapter的类的@ComponentScan注释中

但是每次我打电话给http://localhost:8080/spring-security-rest/api/v2/api-docs我都会收到

代码语言:javascript
复制
16:43:43,370  WARN qtp1072754634-13 servlet.PageNotFound:1136 - No mapping found for HTTP request with URI [/spring-security-rest/api/v2/api-docs] in DispatcherServlet with name 'org.springframework.web.servlet.DispatcherServlet-437a7f13'

系统在控制器映射之间搜索路径/spring-security-rest/api/v2/api-docs。却找不到它。

我忘了什么?

提前谢谢你。

EN

回答 2

Stack Overflow用户

发布于 2019-04-08 03:39:11

我使用@SpringBootApplication将SwaggerConfig类放置在同一个包中,从而解决了这个问题。

以下是一项建议:

通常情况下,这是由于不正确地使用组件扫描。您可以在这里阅读更多关于组件扫描的内容(请完整阅读以下两个问题:)

点击这里获取2个问题

票数 1
EN

Stack Overflow用户

发布于 2016-08-09 15:04:01

我的SwaggerConfig类如下所示:

代码语言:javascript
复制
@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket beerMapApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                    .apis(RequestHandlerSelectors.any())
                    .paths(regex("/api.*"))
                    .build()
                .pathMapping("/")
                .apiInfo(apiInfo());
    }

    @Bean
    public UiConfiguration uiConfig() {
        return UiConfiguration.DEFAULT;
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("title")
                .description("description")
                .version("0.1")
                .build();
    }

}

这就是我的WebMvcConfigurerAdapter.addResourceHandlers的样子:

代码语言:javascript
复制
@Configuration
@EnableWebMvc
@ComponentScan({ "com.something.server.controller" })
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry
                .addResourceHandler("/resources/**")
                .addResourceLocations("/resources/");
        registry
                .addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry
                .addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }

    @Bean
    public InternalResourceViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setViewClass(JstlView.class);
        viewResolver.setPrefix("/WEB-INF/views/jsp/");
        viewResolver.setSuffix(".jsp");
        return viewResolver;
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38854152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档