SpringBoot 2.4与tomcat版本、图片上传访问不了
2023-09-27 14:21:58 时间
JDK
Spring Boot 从2.0开始就要求 Java 8 及其以上版本
Tomcat
一般开发中是没有感觉的,因为系统默认是自带tomcat的运行的
Servlet 容器
Spring Boot 能够支持下面的嵌入 Servlet 容器版本:
名字 |
Servlet 版本 |
---|---|
Tomcat 9.0 |
4.0 |
发布到服务器上运行,就会出现各种各样的问题。
一般开始都是好好的,开始用的是tomcat8.5的版本,一切正常,运行良好。
但是到查看图片的时候,就出现问题了。
1、图片上传正常,服务器也有文件,运行也正常。
2、通过http来访问,就提示500错误
解决:
1)虚拟路径 来重定向路径。
说明:这个重定向其实很简单,也就是说你访问 http://localhost:8080/images/1.jpg ==> Users/xxx/upload/1.jpg
import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /** * 设置虚拟路径,访问绝对路径下资源 */ @Configuration public class UploadConfig implements WebMvcConfigurer { @Value("${file.staticAccessPath}") private String staticAccessPath; @Value("${file.uploadFolder}") private String uploadFolder; @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler(staticAccessPath).addResourceLocations("file:" + uploadFolder); } }
这个文件在启动的时候就会被加载,用来处理。
application-dev.properties
# 上传的服务器上的映射文件夹 file.accessPath=/images/ #静态资源对外暴露的访问路径 file.staticAccessPath=/images/**
#实际文件存放位置 file.uploadFolder=/Users/xxx/upload/ ==》最后的这一个 / 不用少。
通过这一步的处理,本地是可以通过/images来访问实际的文件,但是到了服务器上就报错。
下面的兄弟着重说明:
https://blog.csdn.net/qq_39025156/article/details/90055132
从错误的提示来看,是指少了方法,Servlet一想就是tomcat的问题。从提示中的UrlPath也可以看出重定向出了问题,因为没有这个方法。
2)更换tomcat版本
从tomcat8.5换成tomcat9或更高版本。
总结:不同的spring boot版本对应的jdk, tomcat版本都不太一样。
相关文章
- 10分钟学会Springboot项目单元测试
- 使用tomcat启动SpringBoot项目
- Springboot 获取 /resources 目录资源文件的 9 种方法
- SpringBoot: 使用外置Tomcat部署
- SpringBoot配置Email发送功能
- SpringCloud与SpringBoot的版本对应关系(2022年最新)
- SpringBoot 启动参数设置环境变量、JVM参数、tomcat远程调试
- druid+springboot加解密Druid链接池配置加密密码链接数据库
- SpringBoot项目属性配置
- docker部署springboot项目
- springboot实战:我们的第一款开源软件
- SpringBoot使用Redis缓存
- SpringBoot thymeleaf模板页面没提示,SpringBoot thymeleaf模板插件安装
- 很简单的源码剖析-SpringBoot内嵌Tomcat原理
- 在Tomcat服务器中启动SpringBoot项目原理(简化版)
- SpringBoot注解大全(转)
- SpringBoot 和 websocket集成
- springboot项目打包、部署Tomcat流程详解
- SpringBootApplication是如何启动Tomcat的? | 破解SpringBoot Tomcat启动之谜 !
- springboot使用postgresql模式下数据库表找不到
- 13. SpringBoot启动报错:Error:(3, 32) java:无法访问org.springframework.boot.SpringApplication 错误的类文件...