Spring boot Spring启动项目Jar文件未读取放置在类路径上的文件

Spring boot Spring启动项目Jar文件未读取放置在类路径上的文件,spring-boot,jar,google-cloud-sql,Spring Boot,Jar,Google Cloud Sql,我正在将我的Spring Boot应用程序与Google Cloud Sql连接,它通过在src/main/resources中放置凭证文件来连接,但是问题在我尝试运行Jar文件时出现-[FileNotFound] ::弹簧启动::(v2.0.3.版本) 应用程序.属性- spring.cloud.gcp.credentials.location=classpath:ArpanShoppingApp-863d536d1f93.json 2018-06-22 10:46:38.393 INFO

我正在将我的Spring Boot应用程序与Google Cloud Sql连接,它通过在src/main/resources中放置凭证文件来连接,但是问题在我尝试运行Jar文件时出现-[FileNotFound]

::弹簧启动::(v2.0.3.版本)

应用程序.属性-

spring.cloud.gcp.credentials.location=classpath:ArpanShoppingApp-863d536d1f93.json
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]
运行jar文件会产生异常

java -jar CloudSQLConnect-1.0.jar
例外情况-

spring.cloud.gcp.credentials.location=classpath:ArpanShoppingApp-863d536d1f93.json
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]
2018-06-22 10:46:38.393信息1172---[main]o.s.c.g.s.a.GcpCloudSqlAutoConfiguration:默认MYSQL JdbcUrl提供程序。连接到jdbc:mysql://google/google_sql?cloudSqlInstance=mindful-高速公路207309:asia-south1:shopping db&socketFactory=com.google.cloud.sql.mysql.socketFactory&useSSL=false,带驱动程序com.mysql.jdbc.driver
2018-06-22 10:46:38.401信息1172---[main]o.s.c.g.s.a.GcpCloudSqlAutoConfiguration:读取云SQL凭据文件时出错。
java.io.FileNotFoundException:类路径资源[ArpanShoppingApp-863d536d1f93.json]无法解析为绝对文件路径,因为它不在文件系统中:jar:file:/Users/arpan/Documents/workspace-sts-3.8.4.RELEASE/CloudSQLConnect/target/CloudSQLConnect-1.0.jar/BOOT-INF/classes/ArpanShoppingApp-863d536d1f93.json
在org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:217)~[spring-core-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
在org.springframework.core.io.AbstractFileResolvingResource.getFile(AbstractFileResolvingResource.java:133)~[spring-core-5.0.7.RELEASE.jar!/:5.0.7.RELEASE]
位于org.springframework.cloud.gcp.sql.autoconfig.GcpCloudSqlAutoConfiguration.setCredentialProperty(GcpCloudSqlAutoConfiguration.java:167)[spring-cloud-gcp-starter-sql-1.0.0.M1.jar!/:1.0.0.M1]
在org.springframework.cloud.gcp.sql.autoconfig.GcpCloudSqlAutoConfiguration.defaultjdbccInfoProvider(GcpCloudSqlAutoConfiguration.java:107)[spring-cloud-gcp-starter-sql-1.0.0.M1.jar!/:1.0.0.M1]
在org.springframework.cloud.gcp.sql.autoconfig.GcpCloudSqlAutoConfiguration$$EnhancerBySpringCGLIB$$edf77794.CGLIB$defaultjdbcsinfoprovider$1()[spring-cloud-gcp-starter-sql-1.0.0.M1.jar!/:1.0.0.M1]

这似乎是spring cloud gcp的一个限制。看起来凭证文件必须在文件系统上,不能打包到jar中。最新代码的版本比您正在使用的M1版本更高。

您是否尝试了
classpath*:
?是的,没有成功。您找到解决方案了吗?还应该说,限制仅适用于spring cloud gcp中的SQL集成。每个其他集成都支持类路径凭据。