我正在编写一个小程序,使用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文件。
答案 0 :(得分:0)
当你说'在本地运行'时,你的意思是你在工作站上运行它......或者在IBM i上使用JAVA命令?
如果从工作站运行它,您可能拥有IBM i java没有的密钥库条目。
您也可以在i上使用较新版本的Java。查看http://www-01.ibm.com/support/docview.wss?uid=nas8N1011999以获取有关IBM i支持哪些Java版本的信息。