我正在使用 JavaPNS 通过我的家用计算机发送远程推送通知 (iOS)。按照raywenderlich.com上有关如何准备证书的步骤进行操作后,我将 .p12 文件放入下面编写的代码中:
import javapns.Push;
import javapns.notification.Payload;
import javapns.notification.PushedNotifications;
import org.apache.log4j.*;
public class Main{
public static void main(String[] args) {
Push.alert("Hello World!", "PushChatKey.p12", "pushchat", false, "Token");
}
}
我没有在上面的代码中包含我的设备令牌,但我 100% 确定我的实际程序中的令牌编号是我设备的正确编号。当我运行程序时,在(eclipse)控制台中出现以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
at javapns.notification.Payload.<clinit>(Payload.java:25)
at javapns.Push.alert(Push.java:47)
at Main.check(Main.java:86)
at Main.main(Main.java:115)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 4 more
我的 .p12 文件位于我的 java 项目文件夹中,在查看其他以前提出的问题后,我将 org.apache 导入语句放入我的程序中。
我见过的其他类似问题的答案是使用包含以下行的 try-catch 语句: BasicConfigurator.configure();
当我把它放进去时,Eclipse 告诉我:“BasicConfigurator 无法解析”,它让我可以选择自己创建类。
我不确定我做错了什么。任何帮助将不胜感激。提前感谢所有回复的人。