GCM:java.lang.NoClassDefFoundError:com/google/android/gcm/server/Sender

2024-03-20

我一直在尝试让 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 密钥替换为 api_key。我知道它有效,因为我能够通过运行教程中解释的 ant 命令来使演示工作。另外,为了避免歧义,我得到的错误是服务器端的,与 Android 设备无关。

我已经尝试过的事情:

  1. 我已将 gcm-server.jar 包含在 WEB-INF/lib 文件夹中,并在项目属性下将其包含在构建路径中。
  2. 正如其他网站上提到的,我也尝试过以包含 gcm-server.jar 的方式包含 json_simple-1.1.jar。我不知道这会如何影响此错误,但我在几个不同的地方看到这被列为答案。
  3. (解决方案)删除tomcat服务器并创建一个新的。我可能可以直接清理项目并得到相同的结果。

演示教程链接:http://developer.android.com/guide/google/gcm/demo.html http://developer.android.com/guide/google/gcm/demo.html.


我刚刚找到了解决我的问题的方法。无奈之下,我从 eclipse 中删除了旧的 Tomcat 服务器并创建了一个新服务器。当我再次运行该项目时,完全没有任何问题。当我第一次设置项目时,我将 jar 文件包含在 WEB-INF/lib 中,后来在阅读了互联网上的大量帖子后,将 gcm-server.jar 添加到构建路径中。看来此操作可以修复它,但由于某种我不知道的原因,服务器上在更改之前留下了一些文件。我应该尝试清理我的项目,但我什至没有想到这是问题所在。无论如何,我希望这对某人有帮助,因为我已经将在互联网上找到的所有信息浓缩到这篇文章中,并包含了我自己的困境和解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GCM:java.lang.NoClassDefFoundError:com/google/android/gcm/server/Sender 的相关文章

随机推荐

  • 使用 jsonpickle 从文件保存和加载对象

    我有以下简单方法使用 jsonpickle 将 python 对象写入文件 def json serialize obj filename use jsonpickle True f open filename w if use jsonp
  • 如何用矩阵的一些不连续的行和列形成子矩阵

    我有一个 10 x 10 矩阵 我想从这个主矩阵形成一个子矩阵 使用除第一 第二和第八列和行之外的所有行和列 我知道 Part 可以用来形成子矩阵 但这些示例主要是关于仅使用连续的行和列形成子矩阵 如果这是你的矩阵 tst RandomIn
  • 使用 ECS 时保护来自 EC2 实例的出站流量规则

    即使我在私有子网中创建 EC2 实例 如果我想将它们注册到 ECS 集群 它们也必须能够将流量发送到 Internet 我正在使用 NAT 网关来执行此操作 但我仍然感到不安全 因为实例可以在被接管时将私人信息发送到任何地方 我可以用于实例
  • apache从非www重定向到www

    我有一个网站似乎没有从非 www 重定向到 www 我的Apache配置如下 RewriteEngine On re direct to www RewriteCond http host www example com nc Rewrit
  • C# - 混合汇编(C++/CLI、DirectX 本机)交互(32/64 位)

    我有一个相关问题这个问题 https stackoverflow com questions 2963809 anycpu x86 x64 for c application and its c cli dependency 两名球员 C
  • 检查重复 ID 的 Html javascript 代码

    如何在javascript中检查包含重复id的标签 尝试这个 var nodes document querySelectorAll id var ids var totalNodes nodes length for var i 0 i
  • 编辑“prefers-color-scheme”值以强制使用深色模式

    我花了几个小时寻找解决方案 在线和在 Chrome 控制台中 但没有成功 实现暗模式的 正确 方法是使用带有 prefers color scheme 参数的媒体查询 body color fff media prefers color s
  • Heroku 上的 Django - 缺少静态文件 manifest.json 文件

    我正在尝试在 Heroku 上启动 Django 我环顾了 Stack Overflow 尝试了不同的方法 但我无法弄清楚 它看起来与 Django 上与 staticfiles 问题相关的所有问题类似 不幸的是我不知道问题出在哪里 我的项
  • Array.prototype.includes 中的错误?

    我遇到了奇怪的行为Array prototype includes在一种边缘情况下 鉴于Array prototype includes适用于绑定上下文 人们可能会像这样使用它 这是有效的 expect Array prototype in
  • 连接 Wi-Fi 网络时如何使用蜂窝数据?

    我期待在连接 Wi Fi 时使用蜂窝数据 Yi行车记录仪的工作原理是这样的 易相机制作软AP iOS 或 Android 手机连接 Wi Fi YI和Phone之间建立内部网络 一般情况下 手机不能上网 但是 在Yi网络中 手机可以使用互联
  • 从“选择应用程序”列表中隐藏 NFC 应用程序/禁用通过外部 NFC 意图启动

    我目前正在为 Android 编写几个支持 NFC 的应用程序 并想知道如何阻止我的应用程序出现在 选择应用程序 列表中 该列表在从启动器或非 NFC 应用程序扫描标签时打开 我只希望我的应用程序能够在打开时读取标签 我当前的意图过滤器
  • 软件包:cx_Oracle for Python 3.5,windows64 位。甲骨文11.2.0.1.0

    我正在尝试在我的 Windows PC 上安装 cx Oracle 我在命令提示符下运行了以下命令 pip install cx Oracle 这给了我以下错误 Collecting cx Oracle Could not find a v
  • 终止程序是否以与 free() 相同的方式回收内存?

    I saw 这个答案 https stackoverflow com a 6347182 8183900关于堆栈溢出问题 该问题表明在 C 程序的最后释放内存实际上是有害的 因为它将不会再次使用的变量移动到系统内存中 我很困惑为什么 C 中
  • Eclipse CDT - 如何快速计算代码中没有的表达式?

    我已经离开 Eclipse CDT 一段时间了 已经被 JetBrains 优秀的 IDE 宠坏了 而且公司不让我拥有Clion https www jetbrains com clion 诚然 这些主要针对解释型语言 而不是编译型语言 因
  • 不解析 RESTful 应用程序中的视图

    我正在使用 Spring MVC 3 构建一个具有 RESTful Web 服务的 Web 应用程序 Web 服务将由应用程序使用 因此永远不应该真正解析对视图的任何请求 有什么方法可以在 servlet 上下文中指定任何请求都不应解析到任
  • WordPress 用户上传不带扩展名的照片

    我遇到了最奇怪的问题 我的网站上有一位作家 使用 WordPress 4 2 2 但这种情况发生了几个月 不断上传名称为 00甚至没有扩展名 并且由于某些黑暗的原因 这些图像绕过了 WordPress 上传过滤器并获得了疯狂的名称 例如jp
  • 如何在 vaadin 7 中创建复杂的标头?

    我使用 setColumnHeader Object String 将一个简单的字符串设置为列标题 我想创建一个复杂的标题 我想知道是否有任何方法可以在 Vaadin 7 中构建如下图所示的类似表 https i stack imgur c
  • Web Audio API 从暂停状态恢复

    我经常读到无法使用以下命令暂停 恢复音频文件网络音频API https dvcs w3 org hg audio raw file tip webaudio specification html 但现在我看到了一个example http
  • 加载 XSLT 文档时路径中存在非法字符

    我正在创建一个方法来返回 HTML 字符串作为 XSLT 转换的结果 当我运行以下代码时 我在以下行中收到路径错误中的非法字符 xsltTransform Load xsltTemplate 注意我已经通过另一种方法测试了 XSLT 转换并
  • GCM:java.lang.NoClassDefFoundError:com/google/android/gcm/server/Sender

    我一直在尝试让 Google Cloud Messaging 在 Eclipse 中工作 我能够编译他们的演示网页上给出的示例并运行它 没有任何错误 但是 当我尝试使用 jersey 创建自己的示例时 当以下代码尝试创建发件人时 我收到运行