2011-07-28 16 views
0

Javaアプリケーションからiphoneにプッシュ通知を送信しようとしました。ソースコードがあります: PayLoad payLoad = new PayLoad();Appleプッシュ通知、java-apnsのPKCS12

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.NoSu chAlgorithmException:PBE javax.crypto.SecretKeyFactoryにするSecretKeyFactory 利用できません(DashoA13 * ...) javax.crypto.SecretKeyFactory.getInstanceで(DashoA13 * ...) ... 4もっと

いずれかが私を助けることができます。これとともに ?

答えて

1

最近同じ例外が発生しました。新しいSun JDK 1.7.0を使用してEclipse(バージョン3.7.0 Indigo)でコードを実行した場合にのみ発生することが判明しました。 Eclipseの外部でコードを実行するか、JDK 1.6.xを使用すると問題が解決しました。

0

Btw、あなたが提供したコードから、JavaPNS(1.6?)の古いバージョンを使用しているようです。 http://code.google.com/p/javapns/から最新バージョン(公開2.0または最新の2.1レベルビルド)にアップグレードしたい場合は、信頼性が大幅に向上し、これらのすべてではなく1行のコードで通知をプッシュできるようになります「複雑な」ステップ。

関連する問題