spring-boot - Spring Boot Project Jar 文件未读取放置在类路径上的文件
问题描述
我正在将我的 Spring Boot 应用程序与 Google Cloud Sql 连接,并通过将凭据文件放在src/main/resources中进行连接,但是当我尝试运行 Jar 文件时出现问题- [FileNotFound]
:: Spring Boot :: (v2.0.3.RELEASE)
应用程序.properties-
spring.cloud.gcp.credentials.location=classpath:ArpanShoppingApp-863d536d1f93.json
运行 jar 文件会出现异常
java -jar CloudSQLConnect-1.0.jar
例外-
2018-06-22 10:46:38.393 INFO 1172 --- [ main] o.s.c.g.s.a.GcpCloudSqlAutoConfiguration : Default MYSQL JdbcUrl provider. Connecting to jdbc:mysql://google/google_sql?cloudSqlInstance=mindful-highway-207309:asia-south1:shopping-db&socketFactory=com.google.cloud.sql.mysql.SocketFactory&useSSL=false with driver com.mysql.jdbc.Driver
2018-06-22 10:46:38.401 INFO 1172 --- [ main] o.s.c.g.s.a.GcpCloudSqlAutoConfiguration : Error reading Cloud SQL credentials file.
java.io.FileNotFoundException: class path resource [ArpanShoppingApp-863d536d1f93.json] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/Users/arpan/Documents/workspace-sts-3.8.4.RELEASE/CloudSQLConnect/target/CloudSQLConnect-1.0.jar!/BOOT-INF/classes!/ArpanShoppingApp-863d536d1f93.json
at org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:217) ~[spring-core-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
at org.springframework.core.io.AbstractFileResolvingResource.getFile(AbstractFileResolvingResource.java:133) ~[spring-core-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
at org.springframework.cloud.gcp.sql.autoconfig.GcpCloudSqlAutoConfiguration.setCredentialsProperty(GcpCloudSqlAutoConfiguration.java:167) [spring-cloud-gcp-starter-sql-1.0.0.M1.jar!/:1.0.0.M1]
at org.springframework.cloud.gcp.sql.autoconfig.GcpCloudSqlAutoConfiguration.defaultJdbcInfoProvider(GcpCloudSqlAutoConfiguration.java:107) [spring-cloud-gcp-starter-sql-1.0.0.M1.jar!/:1.0.0.M1]
at org.springframework.cloud.gcp.sql.autoconfig.GcpCloudSqlAutoConfiguration$$EnhancerBySpringCGLIB$$edf77794.CGLIB$defaultJdbcInfoProvider$1(<generated>) [spring-cloud-gcp-starter-sql-1.0.0.M1.jar!/:1.0.0.M1]
解决方案
这似乎是 spring-cloud-gcp 的限制。似乎凭据文件必须在文件系统上,并且不能打包到 jar 中。最新代码比您使用的 M1 版本具有更好的错误消息。
推荐阅读
- python - python中的R模糊连接
- c# - 什么是类,为什么要使用多个(C#)?
- chrome-native-messaging - 如何显示本机消息传递端口连接错误
- node.js - 如何修复:TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]:在启动脚本中使用 ts-node-dev 时
- javascript - 用字符串和索引反应键
- amazon-web-services - 运行更新时 Cloudformation 无法检索 DBRootPassword
- python - pySpark 替换特定列中的空值
- python - 如何在 Python 中排除 pandas 数据框中的某些行
- analytics - 如何在 Zeppelin 中实现表格和图表的向下钻取功能
- c# - 从具有多个页面的多个 word 文档中读取并通过仅使用 C# 选择包含特定单词的某些页面来创建 PDF