2

好吧,我正在爲一個Apps後端的java服務器工作,它必須能夠發佈iOS推送通知作爲更大代碼庫的一部分,所以我使用了JavaPNS庫(v2.1.1),之前曾在服務器的tomcat版本上使用(並運行過)。我在Arch Linux上使用Eclipse進行本地開發。無法讓JavaPNS適用於推送通知

我想可能是最簡單的測試吧:

try{ 
    Push.alert("Hello", "cert.p12", "password", false, "<my iPods UDID>"); 
}catch(Exception e){ 
    e.printStackTrace(); 
} 

結果的例外是:

Exception in thread "main" java.lang.NoClassDefFoundError:org/bouncycastle/jce/provider/BouncyCastleProvider 
at javapns.notification.PushNotificationManager.initializeConnection(PushNotificationManager.java:107) 
at javapns.Push.sendPayload(Push.java:171) 
at javapns.Push.alert(Push.java:47) 
at testIOS.main(testIOS.java:20) 
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
... 4 more 

的證書文件在本地目錄(有關於它的裝載無投訴),密碼和UDID都是正確的。我已經嘗試了幾件事情(可能是徒然),例如從oracle安裝無限策略JCE: http://www.bouncycastle.org/wiki/display/JA1/Provider+Installation

但是我真的不知道什麼是錯的,它似乎無法找到該類/庫,但我真的不知道如何解決它。預先感謝任何提示。

回答

6

在你的lib中你有bcprov-jdk15-146.jar嗎? 如果沒有,請從此鏈接下載jar並將其放入您的lib中。

Bouncy Castle