Obtendo javax.net.ssl.SSLHandshakeException: Alerta fatal recebido: handshake_failure Erro

Eu estou tentando enviar notificação push para iPhone usando Java-pns, mas estou recebendo o seguinte erro -javax.net.ssl.SSLHandshakeException: Alerta fatal recebido: handshake_failure

Meu código é -

String token="95076d2846e8979b46efd1884206a590d99d0f3f6139d947635ac4186cdc5942";
String host = "gateway.sandbox.push.apple.com";
int port = 2195;
String payload = "{\"aps\":{\"alert\":\"Message from Java o_O\"}}";

NotificationTest.verifyKeystore("res/myFile.p12", "password", false);
KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(getClass().getResourceAsStream("res/myFile.p12"), "password".toCharArray());

KeyManagerFactory keyMgrFactory = KeyManagerFactory.getInstance("SunX509");
keyMgrFactory.init(keyStore, "password".toCharArray());

SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(keyMgrFactory.getKeyManagers(), null, null);
SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();

SSLSocket sslSocket = (SSLSocket) sslSocketFactory.createSocket(host, port);
String[] cipherSuites = sslSocket.getSupportedCipherSuites();
sslSocket.setEnabledCipherSuites(cipherSuites);
sslSocket.startHandshake();

char[] t = token.toCharArray();
byte[] b = Hex.decodeHex(t);

OutputStream outputstream = sslSocket.getOutputStream();

outputstream.write(0);
outputstream.write(0);
outputstream.write(32);
outputstream.write(b);
outputstream.write(0);
outputstream.write(payload.length());
outputstream.write(payload.getBytes());

outputstream.flush();
outputstream.close();

System.out.println("Message sent .... ");

ParaNotificationTest.verifyKeystore Eu estou recebendo que este válido é Arquivo e Keystore.

Eu não estou entendendo porque estou recebendo este erro.

Por favor, alguém pode me ajudar?

Desde já, obrigado ...

No meu log eu vi que

** CertificateRequest

Tipos de Certificação: RSA, DSS, ECDSA

Autoridades de Certificados:

[leia] hashes MD5 e SHA1: len = 10

0000: 0D 00 00 06 03 01 02 40 00 00 ....... @ ..

** ServerHelloDone

[leia] hashes MD5 e SHA1: len = 4

0000: 0E 00 00 00 ....

** cadeia de certificados

**

** ClientKeyExchange, RSA PreMasterSecret, TLSv1

[gravar] hashes MD5 e SHA1: len = 269

.

.

.

.

.

main, READ: Alerta TLSv1, tamanho = 2

principal, RECV TLSv1 ALERT: fatal, handshake_failure

principal, chamado closeSocket ()

principal, exceção de manipulação: javax.net.ssl.SSLHandshakeException: Alerta fatal recebido: handshake_failure

Eu não estou entendendo porqueAutoridades de Certificados: está vazia?

questionAnswers(1)

yourAnswerToTheQuestion