java - Spring-Boot 应用程序不尊重 -Dloader.path
问题描述
我的 Spring Boot 应用程序 (v2.1.1.RELEASE) 使用以下插件和布局打包:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<finalName>my-service-${project.version}</finalName>
<mainClass>com.my.app.MainClass</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
我正在使用以下启动脚本:
java -Dloader.path=/path/to/config/dir/ -jar my-service-1.0.jar
在我的应用程序具有的依赖项之一中,以下代码用于读取外部 xml 配置文件(例如 hbase-site.xml):
URL url = ClassLoader.getSystemResource(filename);
这就是为什么我尝试使用 loader.path 使这些文件可用但应用程序仍然不读取提供的目录中存在的文件的原因。我还缺少什么吗?
已经提到:Spring Boot:是否可以在带有胖 jar 的任意目录中使用外部 application.properties 文件?
解决方案
我觉得应该是getSystemResource的问题,尝试使用getClassLoader().getResourceAsStream(path)
推荐阅读
- python - 为什么 scipy 和 librosa 在读取 wav 文件时不同?
- google-cloud-platform - Google Cloud - 数据共享选项
- python - 图像噪声处理和边缘方向确定
- node.js - res.sendFile 命令nodejs中的错误
- ios - 什么是 Swift 中的 `_ArrayBuffer` 以及我应该如何以及何时使用它?
- node.js - 通过 HTTP POST 请求进行跨容器通信
- r - 尝试重新创建 cor() 函数时找不到“x”或“y”
- html - 如何从 url 中删除 .html 扩展名
- java - 错误:Ionic 上 JDK 1.8 或更高版本的要求检查失败
- r - 使用 rvest 和特定错误抓取数据