springboot 本地上传一直没有问题,但是部署上服务器就总是报找不到路径问题 , 特此记录,以备后用。
首先 由于springboot 本地找到是本目录,到到服务器上由于没有权限在jar里写文件 只能在jar同级目录写文件
@Configuration
public class WebApiConfigurer implements WebMvcConfigurer {
//静态资源配置
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/view/**").addResourceLocations("file:"+System.getProperty("user.dir")+"/view/");
System.getProperty("user.dir") 不管是window 还是linux 都能获取相同的路径 解决了环境不同的问题 ;
@RequestMapping("/upload")
public void upload(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
throw new Exception();
String filePath = System.getProperty("user.dir");
File upload = new File(filePath + File.separator + "view" + File.separator);
if (!upload.exists()) {
upload.mkdirs();
File dest = new File(filePath + File.separator + "view" + File.separator + "index.html");
try {
file.transferTo(dest);
} catch (IOException e) {
log.error(e.getMessage(), e);
这样就可以了
这样就可以在服务器jar 同级目录view 下找到index文件
springboot 本地上传一直没有问题,但是部署上服务器就总是报找不到路径问题 , 特此记录,以备后用。首先 由于springboot 本地找到是本目录,到到服务器上由于没有权限在jar里写文件 只能在jar同级目录写文件@Configurationpublic class WebApiConfigurer implements WebMvcConfigurer { //静态资源配置 @Override public void addResourceH..
一般的java项目在打包成jar包的时候,会出现src外的文件访问不到的情况。
原因:由于存放的图片的路径可能是在src外面的。这样子,打包成jar包之后,类中访问的路径是需要到src下找资源。这时候就出现找不到图片的情况。
这里提供几种解决方案:
打包后操作
就是在打包成jar包之
public static String getXmlPath(String type) throws FileNotFoundException, UnknownHostException {
// 从项目中获取打包config的demo
File path = new File(ResourceUtils.getURL...
下载文件:
运行jersey-server, 不设置端口的情况下,默认为8080,springboot jar运行方式下默认端口为9000
在浏览器输入http://localhost:9000/download?fileFullName=E:/工具/FileZilla.rar
文件路径分割符号请用/替代\,下载服务器上指定路径的文件
上传文件:
运行两个工程,HttpClientPost,jersey-server
运行jersey-server工程,java -jar jersey-server-0.0.1-SNAPSHOT.jar
运行HttpClientPost工程,在cmd下执行r.bat r.bat里写上完整的上传文件的路径,如E:/工具/FileZilla.rar,文件路径分割符号请用/替代\
工程HttpClientPost里url设置访问jersey-server工程的链接
url=http://localhost:9000/uploadtest
工程jersey-server上传后保存的目录设置为D:\tmp
上传下载文件大小在工程jersey-server的配置文件application.properties里设置
1:修改pom文件,去除掉内置tomcat,并且依赖servlet-api
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion&g
授之于鱼不如授之于渔今天我就带着大家一起来探寻jar中资源无法找到报 FileNotFoundException 异常现在我手里有一个项目Tank其中有个tank.properties文件存放着 initNum=30及我们坦克初始化的数目模块目录如下我们用IDEA(因为IDEA调试功能比eclipse强大)
有两处需要通过FileOprationTool获取资源new ImageIcon
这两天遇到一个问题,在处理数据加密是否,有的公司,提供的有加密方法,实际是内部使用fileInputStream得到的,这里只需要知道路径名,在实际开发中直接使用很容易得到,不过当使用mvn打包,然后使用java命令启动,会报,出找到不到文件路径的问题,在这个问题我曾经也费了半天得到,所以把这个问题总结下来,分享给大家
项目中路径问题:
分为项目路径和工程路径工程路径,默认是从根目录...
1. 使用Spring Boot内置的热部署
在服务器上部署Spring Boot应用程序时,可以使用Spring Boot内置的热部署功能,只需要在应用程序启动时添加以下JVM参数:
java -jar -Dspring.profiles.active=prod myapp.jar --spring.devtools.restart.enabled=true
其中,myapp.jar为应用程序的名称,-Dspring.profiles.active=prod是指定应用程序的配置文件,--spring.devtools.restart.enabled=true是启用热部署的参数。
2. 使用JRebel
JRebel是一种Java热部署工具,它可以在不重启应用程序的情况下重新加载Java类和资源文件。可以将JRebel集成到Spring Boot项目中,实现热部署。使用JRebel需要在服务器上安装JRebel Agent,并将JRebel插件集成到开发工具中,然后在应用程序启动时添加以下JVM参数:
java -jar -javaagent:/path/to/jrebel.jar myapp.jar
其中,/path/to/jrebel.jar为JRebel Agent的路径,myapp.jar为应用程序的名称。
注意:在生产环境中,不建议使用热部署功能,因为它可能会影响应用程序的性能和稳定性。建议在开发和测试环境中使用热部署。在生产环境中,应该使用标准的部署和更新方式。
springboot2集成hikari连接池的一些坑( Driver does not support get/set network timeout for connections.)
37708