我一直在尝试让 Google Cloud Messaging 在 eclipse 中工作。我能够编译他们演示网页上给出的示例并运行它而没有任何错误;但是,当我尝试使用 jersey 创建自己的示例时,当以下代码尝试创建发件人时,出现运行时错误“java.lang.NoClassDefFoundError: com/google/android/gcm/server/Sender”。
@POST
@Path("/send")
public Response sendMessage() throws IOException
{
Sender sender = new Sender("api_key");
Message message = new Message.Builder().build();
sender.send(message, DataStore.getDevices(), 5);
return Response.status(200).entity("Success").build();
}
注意:我已经用 api_key 替换了我的真实 api 密钥。我知道它有效,因为我能够通过运行本教程中解释的 ant 命令使演示工作。另外,如果有歧义,我得到的错误是服务器端的,与android设备无关。
我已经尝试过的事情:
- 我已将 gcm-server.jar 包含在我的 WEB-INF/lib 文件夹中,并且在项目属性下我已将其包含在构建路径中。
- 正如在其他网站上提到的,我也尝试过包含 json_simple-1.1.jar,就像我包含 gcm-server.jar 一样。我不知道这会如何影响这个错误,但我看到这个在几个不同的地方被列为答案。
- (解决)删除tomcat服务器,新建一个。我可能只是清理了项目并得到了相同的结果。
演示教程链接:http: //developer.android.com/guide/google/gcm/demo.html。