recoverd keystore: недопустимый формат хранилища ключей [дубликат]

ECMAScript 6 имеет «генераторы», которые позволяют вам легко программировать в асинхронном стиле.

function* myGenerator() {
    const callback = yield;
    let [response] = yield $.ajax("https://stackoverflow.com", {complete: callback});
    console.log("response is:", response);

    // examples of other things you can do
    yield setTimeout(callback, 1000);
    console.log("it delayed for 1000ms");
    while (response.statusText === "error") {
        [response] = yield* anotherGenerator();
    }
}

Для запуска вышеуказанного кода вы делаете это:

const gen = myGenerator(); // Create generator
gen.next(); // Start it
gen.next((...args) => gen.next([...args])); // Set its callback function

Если вам нужно настроить таргетинг на браузеры, которые не поддерживают ES6, вы можете запустить код через Babel или short-compiler для генерации ECMAScript 5.

Обратный вызов ...args завернут в массив и разрушен, когда вы их читаете так что шаблон может справиться с обратными вызовами, которые имеют несколько аргументов. Например, с узлом fs :

const [err, data] = yield fs.readFile(filePath, "utf-8", callback);

18
задан sstn 17 March 2015 в 10:46
поделиться

6 ответов

Я думаю, что файл хранилища ключей, который вы хотите использовать, имеет другой или неподдерживаемый формат в отношении вашей версии Java. Не могли бы вы разместить дополнительную информацию о своей задаче?

В общем, для решения этой проблемы вам может потребоваться воссоздать все хранилище ключей (например, с использованием другой версии JDK). В export-import ключи между старым и новым - если вам удастся открыть старое где-то еще.

Если это просто неподдерживаемая версия, попробуйте BouncyCastle crypto provider, например (хотя я не уверен, если он добавляет поддержку Java для большего количества типов хранилищ?).

Изменить: я просмотрел спецификацию спецификации BC.

4
ответ дан akarnokd 26 August 2018 в 12:36
поделиться

(Re) установка последнего JDK (например, Oracle ) исправила его для меня.

Перед установкой последнего JDK, когда я выполнил следующую команду в Terminal.app :

keytool -list -keystore $(/usr/libexec/java_home)/jre/lib/security/cacerts -v

В результате:

keytool error: java.io.IOException: Invalid keystore format
java.io.IOException: Invalid keystore format
    at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:650)
    at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55)
    at java.security.KeyStore.load(KeyStore.java:1445)
    at sun.security.tools.keytool.Main.doCommands(Main.java:792)
    at sun.security.tools.keytool.Main.run(Main.java:340)
    at sun.security.tools.keytool.Main.main(Main.java:333)

Но после установки последнего Oracle JDK и перезапуска терминала, выполнив следующую команду:

keytool -list -keystore $(/usr/libexec/java_home)/jre/lib/security/cacerts -v

Результаты в:

Enter keystore password:  

Что указывает на то, что keytool на пути может получить доступ к хранилищу ключей.

7
ответ дан Gary S. Weaver 26 August 2018 в 12:36
поделиться

Вы можете повредить файл во время копирования / передачи.

Используете ли вы maven? Если вы копируете файл хранилища ключей с «filter = true», вы можете повредить файл.

Пожалуйста, проверьте размер файла.

58
ответ дан Kurtulus Oksuztepe 26 August 2018 в 12:36
поделиться

Я столкнулся с проблемой openJDK на ubuntu, должен был установить Oracle JDK, чтобы заставить его работать.

Вы можете следовать этому руководству на сайтах Google , чтобы сделать это.

2
ответ дан Sadiq Ali 26 August 2018 в 12:36
поделиться

Ваше хранилище ключей сломано, и вам придется восстановить или восстановить его.

3
ответ дан Thorbjørn Ravn Andersen 26 August 2018 в 12:36
поделиться

Может быть, maven, кодирующий KeyStore, вы можете установить filtering = false для исправления проблемы.

<build>
    ...
    <resources>
        <resource>
            ...
            <!-- set filtering=false to fix -->
            <filtering>false</filtering>
            ...
        </resource>
    </resources>
</build>
15
ответ дан xiezefan 26 August 2018 в 12:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: