在DispatcherServlet中找不到带有URI的HTTP请求的映射,其名称为' dispatcherServlet'

时间:2015-05-11 14:33:40

标签: spring tomcat tomcat7 spring-boot web.xml

我使用的是Spring启动(1.2.2),我试图将png文件作为响应发送。 在我的IDE(IntelliJ)上,它工作得很完美,但在部署到tomcat时,我收到了以下消息:http://example.com/myWebapp/files/17.png

  

Whitelabel错误页面   此应用程序没有/ error的显式映射,因此您将此视为后备。

当我打开catalina日志时,我看到了:

  

o.s.web.servlet.PageNotFound:在DispatcherServlet中找不到带有URI [/myWebapp/files/18.png]的HTTP请求的映射,其名称为' dispatcherServlet'

MyService.java:

@RestController
public class MyService {

    @RequestMapping(value = "/files/{file_name:.+}", method = RequestMethod.GET)
    public void getFile(@PathVariable("file_name") String fileName, HttpServletResponse response) {
        InputStream is = null;
        try {
            is = session().getFileServer().getInputStream(fileName);
            org.apache.commons.io.IOUtils.copy(is, response.getOutputStream());
            response.setContentType("image/png");
            response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
            response.flushBuffer();
            is.close();
        }
    }
}

其他端点也适用于tomcat 根据我的理解,tomcat试图在磁盘中搜索该路径(' /myWebapp/files/18.png'),而不是将请求转发给spring app。 我搜索了这个错误,并想出我需要在我的web.xml中添加一些内容,但无法弄清楚到底是什么。

0 个答案:

没有答案