我使用的是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中添加一些内容,但无法弄清楚到底是什么。