KeyStoreException在非Android应用程序中使用newTrustedTransport方法找不到JKS实现

时间:2018-05-15 22:29:17

标签: java ibm-midrange google-spreadsheet-api

我正在编写一个小程序,使用Google Spreadsheet API将数据从DB2表(DB2 for i)导出到Google Spreadsheet。 Java程序由IBM i环境中的CL程序调用。

我在本地运行该程序并且工作正常!!但是当我尝试运行相同的程序时,通过CL程序调用,当执行此行时,我收到了一个KeyStoreException:

HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();

完整的例外是:

java.security.KeyStoreException:未找到KeyStore JKS实现
         在java.security.KeyStore.getInstance(KeyStore.java:101)
         在com.google.api.client.util.SecurityUtils.getJavaKeyStore(SecurityUtils.java:53)
         在com.google.api.client.googleapis.GoogleUtils.getCertificateTrustStore(GoogleUtils.java:74)
         在com.google.api.client.googleapis.javanet.GoogleNetHttpTransport.newTrustedTransport(GoogleNetHttpTransport.java:55)          在prueba.Principal。(Principal.java:48)
         at java.lang.J9VMInternals.initializeImpl(Native Method)
         at java.lang.J9VMInternals.initialize(J9VMInternals.java:199)
 Programa Java completadoconcódigodesalida 1

IBM i的JVM是1.6版本,所以可能是版本问题,但我使用jdk 1.6构建了jar文件。 我使用Gradle构建了jar文件。

1 个答案:

答案 0 :(得分:0)

当你说'在本地运行'时,你的意思是你在工作站上运行它......或者在IBM i上使用JAVA命令?

如果从工作站运行它,您可能拥有IBM i java没有的密钥库条目。

您也可以在i上使用较新版本的Java。查看http://www-01.ibm.com/support/docview.wss?uid=nas8N1011999以获取有关IBM i支持哪些Java版本的信息。