java - 无法让 JavaPNS 用于推送通知

标签 java ios push-notification apple-push-notifications bouncycastle

好的,所以我正在为 Apps 后端开发一个 Java 服务器,它必须能够将 iOS 推送通知作为更大代码库的一部分发出,所以我使用了 JavaPNS 库 (v2.1.1),它以前在服务器的 tomcat 版本上使用(和工作)。我在 Arch Linux 上使用 Eclipse 进行本地开发。

我正在尝试最简单的测试:

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

但我真的不知道出了什么问题,它似乎无法找到那个类/库,但我真的不知道如何修复它。预先感谢您提供任何提示。

最佳答案

你的库中有 bcprov-jdk15-146.jar 吗? 如果没有,请从此链接下载 jar 并将其放入您的库中。

Bouncy Castle

关于java - 无法让 JavaPNS 用于推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10840715/

相关文章:

java - 打印出 HashMap 中的键和最大值

android - 从 IndexedDB 和 webSQL 从 Cordova 同步数据

ios - Objective-C 返回类型 : "-(id) init" vs "-(ClassName *) init"

sql-server - Node.js socket.io sql server 推送通知

ios - 在 iOS 上将推送通知作为后台应用程序获取

java - 在android中创建动态微调器

java - LayoutResultCallback() 在 LayoutResultCallback 中不公开;生成pdf时无法从外部包错误访问

ios - 使用 ColorWithPatternImage 自定义 View 边框颜色在 iOS 6.1 中生成错误?

Android 推送通知横幅未在某些设备中显示

java - 用户输入名字和姓氏,打印出姓名首字母缩写java eclipse