Я пишу небольшую программу, которая экспортирует данные из таблиц DB2 (DB2 for i) в Google Spreadsheet с помощью Google Spreadsheet API. Программа Java вызывается программой CL в среде IBM i.
Я запустил программу локально и работает нормально !!, но когда я попытался запустить ту же программу, которую вызывала программа 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)
в java.lang.J9VMInternals.initializeImpl (собственный метод)
в java.lang.J9VMInternals.initialize (J9VMInternals.java:199)
Полная программа Java с código de salida 1
JVM IBM i - это версия 1.6, поэтому, возможно, это проблема версии, но я создал файл jar с помощью jdk 1.6. Я создал файл jar с помощью Gradle.




Когда вы говорите «запустить его локально», вы имеете в виду, что запускали его на своей рабочей станции ... или с помощью команды JAVA на IBM i?
Если вы запускали его со своей рабочей станции, у вас может быть запись в хранилище ключей, которой нет в IBM i java.
Вы также можете использовать более новую версию Java на i. Ознакомьтесь с http://www-01.ibm.com/support/docview.wss?uid=nas8N1011999, чтобы узнать, какие версии Java поддерживаются в IBM i.
Я запустил приложение на своей рабочей станции, но как я могу проверить запись в хранилище ключей в IBM i Java?
Как и при любой установке Java, используйте программу keytool. Вы можете запустить его в qshell или qp2term.
Отвечает ли это на ваш вопрос? Приложение StorageServiceAccountSample сообщает "Не найдена реализация KeyStore JKS"