首页 > 解决方案 > Spring Boot 应用程序 DispatcherServlet 的入口点没有响应

问题描述

我有一个 Spring Boot 应用程序可以响应大多数请求,但不能完全响应带有多部分表单数据的 POST。我读过所有 Spring 请求都通过 DispatcherServlet。但是,当我调试 Spring 应用程序时,DispatcherServlet 中没有任何内容可以捕获此请求。

但是,它确实会做出反应,所以它正在做某事。具体来说,当请求进来时,服务器会记录如下内容:

2021-03-07 03:10:56 DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Looking up handler method for path /bluecost/spreadsheet/upload/SSCSpreadsheetUpload-01012020.xlsx
2021-03-07 03:10:57 TRACE o.s.w.s.m.m.a.RequestMappingHandlerMapping - Found 1 matching mapping(s) for [/bluecost/spreadsheet/upload/SSCSpreadsheetUpload-01012020.xlsx] : [{[/bluecost/spreadsheet/upload/{filename}],methods=[POST]}]
2021-03-07 03:10:57 DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Returning handler method [public org.springframework.http.ResponseEntity<java.util.HashMap<java.lang.String, java.lang.Object>> com.ibm.cio.cloud.cost.spreadsheet.rest.controller.BlueCostRestController.uploadSpreadsheet(org.springframework.web.multipart.MultipartFile,java.lang.String)]

FWIW,我在 Eclipse 中将它作为 Spring Boot 应用程序启动。我的问题是,如果不是 DispatcherServlet,当 Web 请求进入时 Spring 的初始入口点是什么?

指示 Spring 版本的 POM 片段

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath/>
    </parent>

它找到但拒绝运行的 web 方法是

   @ApiOperation(      
    value = "Upload spreadsheet data file",       
    notes = "Allows you to upload a single file with each request",      
    consumes = "application/json")   

    @PostMapping("/spreadsheet/upload/{filename}")
    public ResponseEntity<HashMap<String,Object>> uploadSpreadsheet(@RequestParam MultipartFile file, @PathVariable("filename") String filename) {

请注意,它不会发出任何错误,也没有堆栈跟踪。我可能没有提供足够的解决方案,但如果我知道在哪里设置断点,我会更高兴

标签: javaspring-bootmultipartform-datamultipartmultipartfile

解决方案


推荐阅读