【问题标题】:NoClassDefFoundError for javax/servlet/http/HttpServletResponse when using java client library使用 java 客户端库时 javax/servlet/http/HttpServletResponse 的 NoClassDefFoundError
【发布时间】:2015-07-22 10:17:36
【问题描述】:

我正在尝试创建一个小型 android 应用程序来列出我的驱动器内容。

但我使用 play_service 库失败了,因为它总是不返回任何文件(调用 listChildren 时计数为 0)。

现在,当我尝试使用 google-api-java-library 时,我遇到了 ServletResponse 的 NoClassDefFoundError。

new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");

我已经包含了 google 提供的 drive-api-jar 中的所有 jar。这也包括 jetty 和 jetty-utils。

但是在检查了jetty的来源后,我发现jetty依赖于javax.servlet.http.*,我找不到jar。

所以运行应用程序会给出错误。有人能指出我正确的方向吗? 提前致谢。

【问题讨论】:

  • javax.servlet.http.HttpServletResponse 是 Apache Tomcat 库 (TOMCAT_HOME\lib\servlet-api.jar) 的一部分。您不应该在 Android 应用程序中使用它们。你想用 HttpServletResponse 做什么? --- 尝试将此添加到您的 gradle 构建脚本中: compile 'javax.servlet:servlet-api:2.5'
  • @PhilippEmmermacher Jetty 和 Jetty 实用程序依赖于 HttpServletResponse。客户端库(google-api)可能正在使用jetty for oauth2。我对gradle了解不多。因为我使用了 eclipse ADT 或 NDK。我是否需要设置/使用其他工具才能使用 gradle? TIA。
  • Gradle 用于 Android Studio。你的 Eclipse 项目使用 maven 吗?如果没有,你可以在这里找到所需的 jar:mvnrepository.com/artifact/javax.servlet/servlet-api 否则你可以在同一个地方找到依赖关系。
  • @PhilippEmmermacher 感谢您的建议,我能够包含 jar 并绕过码头的问题。现在被困在另一个:(。你能把你的评论作为答案发表,这样我就可以接受它。它可能会帮助其他人。

标签: android google-api-java-client


【解决方案1】:

javax.servlet.http.HttpServletResponse 是 Apache Tomcat 库 (TOMCAT_HOME\lib\servlet-api.jar) 的一部分。

您的 Eclipse 项目是否使用 maven?如果没有,你可以在这里找到所需的 jar:http://mvnrepository.com/artifact/javax.servlet/servlet-api 否则你可以在同一个地方找到依赖项。

【讨论】:

    猜你喜欢
    • 2020-08-09
    • 2015-12-20
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多