java - Spring Boot BigQuery 数据源连接
问题描述
我正在尝试使用 Simba jdbc 驱动程序从 Spring Boot 连接 BigQuery,但我遇到了异常。任何输入表示赞赏。我不确定为什么 spring-boot 正在寻找证书。我能够连接简单的 java 主类,但我只在 Spring 启动时收到此错误。
原因:org.springframework.beans.factory.BeanCreationException:创建名为“org.springframework.boot.autoconfigure.jdbc.DataSourceInitializerInvoker”的bean时出错:调用init方法失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在类路径资源 [com/test/demo/services/config/DBConfig.class] 中定义名称为“getDataSource”的 bean 创建时出错:通过工厂方法进行的 bean 实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [com.simba.googlebigquery.jdbc42.DataSource]:工厂方法“getDataSource”抛出异常;嵌套异常是 java.sql.SQLException:[Simba]BigQueryJDBCDriver HttpTransport IO 错误:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:
DataSource ds = new com.simba.googlebigquery.jdbc42.DataSource();
Connection connection = null;
ds.setURL(
"jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;ProjectId=project)id;OAuthType=0;OAuthServiceAcctEmail=serviceAccountEmail;OAuthPvtKeyPath=p12CertPath;");
ds.setProjectId("projectId");
// ds.setOAuthType(0);
// connection = ds.getConnection();
connection = ds.getConnection();
解决方案
OAuthPvtKeyPath
从您的 JDBC URL 中删除多余的空格,看起来它们干扰了强制OAuthServiceAcctEmail
参数:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;ProjectId=<Your Project ID>;OAuthType=0;OAuthServiceAcctEmail=<Your Email>;OAuthPvtKeyPath=<Path To Cert>;
推荐阅读
- css-selectors - 如何找到href/a/button的css选择器
- linux - 如何在树莓派 3b+ 中同时使用静态以太网 ip 和 Wi-Fi
- javascript - 如何从包含多个对象数组的 Json 数据中提取多个对象数组?
- html - Selenium html.text 返回不完整的结果
- php - 登录后如何自定义重定向
- ruby - 尝试在 Ruby 中实例化自定义对象时抛出(参数错误)
- r - 随机游走自相关函数的 3D 图
- symfony - easyadmin 实体字段的动态自定义选择
- python - 旋转图像后更新 cv::rect
- javascript - JavaScript GetElementById 为 Null 但元素有值