예외 : thread "main"의 예외 java.lang.ClassCastException : [Ljava.security.cert.Certificate; [Ljava.security.cert.X509Certificate; keystore.jks 파일이 예외를 수정하는 방법 : thread "main"의 예외 java.lang.ClassCastException
, 그것은, 그것의 별칭은 하나 개의 항목이다있다 "/ btsmed-1/certh-1/necert-1"이 인증서 체인이 방법에 의해로 설정된 파일 keystore.jks :
나는이 문장을 실행할 때, 키 저장소 JKS로드 다시하기 전에keystore.setKeyEntry(alias, Keys.keyPair().getPrivate(),KEY_STORE_PASSWORD.toCharArray(), certChain);
keystore.store(out, KEY_STORE_PASSWORD.toCharArray());
:
X509Certificate[] certs1 = (X509Certificate[])keystore.getCertificateChain(alias);
이 캐스팅 예외를 발생하지 않습니다.
그러나 keystore.load (fIn, password) 이후. ==================== 아래의 소스 코드를
X509Certificate[] certs1 = (X509Certificate[]) keystore.getCertificateChain(alias);
입니다 :이 문을 실행할 때 캐스트 예외가 발생합니다.
public class KeystoreLoad {
public static void main(String[] args) throws Exception {
char[] password = "nokia123".toCharArray();
String alias = "/btsmed-1/certh-1/necert-1";
KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load(null, null);
FileInputStream fIn = new FileInputStream("d://keystore/keystore.jks");
keystore.load(fIn, password);
X509Certificate[] certs1 = (X509Certificate[]) keystore.getCertificateChain(alias);
System.out.println(Arrays.toString(certs1));
}
}
감사합니다,하지만 난 인증서는 []이 X509Certificate [] 입력 전송하려는, 그리고 돈을 그것이 왜 실패 할 것인지를 안다. – danny
수정 된 것을 시도하십시오. – Narendra
X509Certificate [] certs1 = (X509Certificate []) keystore.getCertificateChain (alias); 동일하게 사용하지만 가져 오기를 변경하십시오. – Narendra