Push-уведомление Apple, PKCS12 в java-apns - PullRequest
0 голосов
/ 28 июля 2011

Я пытаюсь отправить push-уведомление из java-приложения на iphone.есть исходный код: PayLoad payLoad = new PayLoad ();

payLoad.addAlert("My alert message");
payLoad.addBadge(45);
payLoad.addSound("default");

PushNotificationManager pushManager = PushNotificationManager.getInstance();
pushManager.addDevice("iPhone", "f4201f5d8278fe39545349d0868a24a3b60ed732");
log.warn("Initializing connectiong with APNS...");

// Connect to APNs
pushManager.initializeConnection(HOST, PORT, 
                             "/etc/Certificates.p12", "password", 
SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);

Device client = pushManager.getDevice("iPhone");

// Send Push
log.warn("Sending push notification...");
PushNotificationManager.getInstance().sendNotification(client, payLoad);

Я получаю исключение в строке:

 pushManager.initializeConnection(HOST, PORT, 
                             "/etc/Certificates.p12", "password", 
SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);

Вот исключение:

java.io.IOException: failed to decrypt safe contents entry: java.io.IOException: getSecretKey failed: PBE SecretKeyFactory not available
at com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore.engineLoad(Unknown Source)
at java.security.KeyStore.load(Unknown Source)
at com.anthil.apns.service.ExtractFile.main(ExtractFile.java)

Причина: java.io.IOException: ошибка getSecretKey: PBE SecretKeyFactory недоступен на com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore.getPBEKey (Неизвестный источник) ... еще 3 причины: java.security.NoSuchAlgorithmException: PBE SecretKeyFactory не доступен в javax.crypto.SecretKeyFactory. (DashoA13 * ..) в javax.crypto.SecretKeyFactory.getInstance (DashoA13 * ..) ... еще 4

может любой может любоймне с этим?

Ответы [ 3 ]

1 голос
/ 04 августа 2011

Я недавно столкнулся с тем же исключением.Это произошло только тогда, когда я запускал свой код через Eclipse (версия 3.7.0 Indigo), используя новый Sun JDK 1.7.0.Запуск кода вне Eclipse или использование JDK 1.6.x устранили проблему для меня.

0 голосов
/ 12 ноября 2011

Кстати, из предоставленного вами кода вы, похоже, используете старую версию JavaPNS (1.6?).Возможно, вы захотите перейти на последнюю версию (общедоступную 2.0 или даже последнюю версию 2.1) с http://code.google.com/p/javapns/,, поскольку вы получите МНОГИЕ повышения надежности и сможете отправлять уведомления с помощью одной строки кода.вместо всех этих «сложных» шагов.

0 голосов
/ 02 августа 2011

У меня была похожая проблема, которая была решена путем удаления флага '-Djava.ext.dirs' из моей команды java.Смотри: http://www.scottmcmaster365.com/2009/03/perils-of-abusing-javaextdirs-property.html

...