【发布时间】:2019-05-19 14:36:00
【问题描述】:
当我们从 OracleJDK 切换到 OpenJDK 时,我们面临以下问题:
[主机控制器] 09:25:41,568 INFO [org.jboss.as](MSC 服务 线程 1-6) JBAS015899: WildFly 8.2.1.Final "Tweek" 开始 [Host 控制器] 09:25:42,674 错误 [org.jboss.as.controller.management-operation](控制器启动 线程)JBAS014612:操作(“添加”)失败 - 地址:([[主机 控制器] ("host" => "master"), [主机控制器]
(“核心服务”=>“保险库”)[主机控制器]]): java.lang.RuntimeException: JBAS015804: 初始化库时出错 -- org.jboss.as.server.services.security.VaultReaderException: JBAS013313:Vault Reader 异常:[Host Controller] at org.jboss.as.server.services.security.VaultAddHandler.performRuntime(VaultAddHandler.java:82) [wildfly-server-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.controller.AbstractAddStepHandler$1.execute(AbstractAddStepHandler.java:75) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:660) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:501) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:298) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:293) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.controller.ModelControllerImpl.boot(ModelControllerImpl.java:324) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:297) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.host.controller.DomainModelControllerService.boot(DomainModelControllerService.java:441) [wildfly-host-controller-8.2.1.Final.jar:8.2.1.Final] [主机 控制器]在 org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:259) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_191] [主机 控制器] 引起: org.jboss.as.server.services.security.VaultReaderException: JBAS013313:Vault Reader 异常:[Host Controller] at org.jboss.as.security.vault.RuntimeVaultReader.createVault(RuntimeVaultReader.java:84) [wildfly-security-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.server.services.security.VaultAddHandler.performRuntime(VaultAddHandler.java:80) [wildfly-server-8.2.1.Final.jar:8.2.1.Final] [主机控制器] ... 10 更多 [主机控制器] 引起: org.jboss.security.vault.SecurityVaultException: java.lang.RuntimeException:PBOX000140:无法获取密钥库 (/usr/jboss-8.2.0.Final/domain/vault/keystore.jceks) [主机控制器] 在 org.picketbox.plugins.vault.PicketBoxSecurityVault.init(PicketBoxSecurityVault.java:210) [主机控制器] 在 org.jboss.as.security.vault.RuntimeVaultReader.createVault(RuntimeVaultReader.java:82) [wildfly-security-8.2.1.Final.jar:8.2.1.Final] [主机控制器] ... 11 更 [Host Controller] 引起:java.lang.RuntimeException: PBOX000140:无法获取密钥库 (/usr/jboss-8.2.0.Final/domain/vault/keystore.jceks) [主机控制器] 在 org.picketbox.plugins.vault.PicketBoxSecurityVault.getKeyStore(PicketBoxSecurityVault.java:688) [主机控制器] 在 org.picketbox.plugins.vault.PicketBoxSecurityVault.init(PicketBoxSecurityVault.java:205) [主机控制器] ... 12 更多 [主机控制器] 原因: java.io.IOException:无效的密钥格式 [主机控制器] 在 com.sun.crypto.provider.JceKeyStore.engineLoad(JceKeyStore.java:856) [sunjce_provider.jar:1.8.0_191] [主机控制器] 在 java.security.KeyStore.load(KeyStore.java:1445) [rt.jar:1.8.0_191] [主机控制器] 在 org.picketbox.util.KeyStoreUtil.getKeyStore(KeyStoreUtil.java:201) [主机控制器] 在 org.picketbox.util.KeyStoreUtil.getKeyStore(KeyStoreUtil.java:151) [主机控制器] 在 org.picketbox.plugins.vault.PicketBoxSecurityVault.getKeyStore(PicketBoxSecurityVault.java:685)[主机控制器] ... 13 更多 [主机控制器] [主机控制器] 09:25:42,682 致命 [org.jboss.as.host.controller](控制器启动 线程)JBAS010933:主机控制器启动失败 不可恢复的方式;退出。有关详细信息,请参阅以前的消息。
在 OracleJDK 中同样适用。使用与 OracleJDK 相同的密钥库文件。两个JDK版本都是8。
jdk1.8.0_121
java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64
谁能指出 OpenJDK 有什么问题?
【问题讨论】:
-
(1) 对固定格式(面向行的)计算机输出使用块引用使其完全不可读。不要添加 >,而是通过添加 4 个空格或(更容易)使用 {} 按钮来使用“代码”降价。 (2) 每种 JDK 的版本是什么? (3) 每个 JDK 的
keytool程序是否在此密钥库上工作,或者它们给出了什么错误?