使用 Google App Engine for Java 出现 ClassNotFoundException

2023-12-09

我和一个朋友正在使用 Java SDK 涉足 App Engine。我们已经 毫无问题地组合一个“Hello, World”示例;然而,当 我们尝试添加代码以使用以下方式对 Web 服务进行简单调用 com.google.api.client.http 中的类,我们的代码编译得很好,但是 导致运行时错误:

HTTP ERROR 500

Problem accessing /surreality. Reason:

   com/google/api/client/http/HttpTransport

Caused by:

HTTP ERROR 500

Problem accessing /surreality. Reason:

   com/google/api/client/http/javanet/NetHttpTransport

Caused by:

java.lang.NoClassDefFoundError: com/google/api/client/http/javanet/
NetHttpTransport
       at
com.surreality.scratch.SurrealityServlet.performSearch(SurrealityServlet.java:
31)
       at
com.surreality.scratch.SurrealityServlet.doGet(SurrealityServlet.java:
18)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
511)

(...cut)

有问题的代码是:

package com.surreality.scratch;

import java.io.IOException;
import javax.servlet.http.*;
import java.util.List;
import com.google.api.client.googleapis.*;
import com.google.api.client.http.*;
import com.google.api.client.http.javanet.*;
import com.google.api.client.util.Key;

@SuppressWarnings("serial")
public class SurrealityServlet extends HttpServlet {

       public void doGet(HttpServletRequest req, HttpServletResponse resp)
                       throws IOException {
               resp.setContentType("text/plain");
               try {
                       this.performSearch(resp);
                       resp.getWriter().println("Here...");
               } catch (Exception e) {
                       resp.getWriter().println("Onoes!");
               }
       }

       public void performSearch(HttpServletResponse resp) throws Exception
{

               try {
                       resp.getWriter().println("Perform Search ....");
                       resp.getWriter().println("-------------------");

                       HttpTransport transport = new NetHttpTransport(); // This line
causes our servlet to implode on every request
               } catch (Exception e) {
                       resp.getWriter().println("failed");
                       throw e;
               }
       }
}

我们最好的猜测是构建类路径和 运行时类路径,但是我们的运行时类路径seems没事。这 HttpTransport 类位于 google-api-client-1.4.1-beta.jar 中 库,它包含在 Eclipse 生成的命令行中 运行该项目:

/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/
java -Ddatastore.default_high_rep_job_policy_unapplied_job_pct=50 -
Xmx512m -javaagent:/Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/agent/appengine-agent.jar -
XstartOnFirstThread -Xbootclasspath/p:/Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/override/appengine-dev-jdk-overrides.jar -
Dfile.encoding=MacRoman -classpath /Users/Arkaaito/Documents/AppEngine/
scratch/surreality/war/WEB-INF/classes:/Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/shared/appengine-local-runtime-
shared.jar:/Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/shared/el-api.jar:/Applications/eclipse/
plugins/com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/shared/jsp/repackaged-appengine-
ant-1.7.1.jar:/Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/shared/jsp/repackaged-appengine-ant-
launcher-1.7.1.jar:/Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/shared/jsp/repackaged-appengine-
jasper-6.0.29.jar:/Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/shared/jsp/repackaged-appengine-jasper-
el-6.0.29.jar:/Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/shared/jsp/repackaged-appengine-tomcat-
juli-6.0.29.jar:/Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/shared/jsp-api.jar:/Applications/eclipse/
plugins/com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/shared/servlet-api.jar:/Applications/
eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/user/appengine-api-1.0-sdk-1.5.3.jar:/
Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/user/appengine-api-labs-1.5.3.jar:/
Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/user/appengine-jsr107cache-1.5.3.jar:/
Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/user/jsr107cache-1.1.jar:/Applications/
eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/user/orm/datanucleus-
appengine-1.0.9.final.jar:/Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/user/orm/datanucleus-core-1.1.5.jar:/
Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/user/orm/datanucleus-jpa-1.1.5.jar:/
Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/user/orm/geronimo-jpa_3.0_spec-1.1.1.jar:/
Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/user/orm/geronimo-jta_1.1_spec-1.1.1.jar:/
Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/user/orm/jdo2-api-2.3-eb.jar:/
Applications/eclipse/plugins/
com.google.appengine.eclipse.sdkbundle_1.5.3.r37v201108301710/
appengine-java-sdk-1.5.3/lib/appengine-tools-api.jar:/Users/Arkaaito/
Documents/AppEngine/scratch/surreality/war/WEB-INF/lib/google-api-java-
client-1.4.1-beta/dependencies/httpclient-4.0.3.jar:/Users/Arkaaito/
Documents/AppEngine/scratch/surreality/war/WEB-INF/lib/google-api-java-
client-1.4.1-beta/dependencies/httpcore-4.0.1.jar:/Users/Arkaaito/
Documents/AppEngine/scratch/surreality/war/WEB-INF/lib/google-api-java-
client-1.4.1-beta/google-api-client-1.4.1-beta.jar:/Users/Arkaaito/
Documents/AppEngine/scratch/surreality/war/WEB-INF/lib/google-api-java-
client-1.4.1-beta/google-api-client-googleapis-1.4.1-beta.jar:/Users/
Arkaaito/Documents/AppEngine/scratch/surreality/war/WEB-INF/lib/google-
api-java-client-1.4.1-beta/google-api-client-extensions-1.4.1-
beta.jar:/Users/Arkaaito/Documents/AppEngine/scratch/surreality/war/
WEB-INF/lib/google-api-java-client-1.4.1-beta/google-api-client-
googleapis-extensions-1.4.1-beta.jar:/Users/Arkaaito/Documents/
AppEngine/scratch/surreality/war/WEB-INF/lib/geronimo-
jpa_3.0_spec-1.1.1.jar:/Users/Arkaaito/Documents/AppEngine/scratch/
surreality/war/WEB-INF/lib/geronimo-jta_1.1_spec-1.1.1.jar
com.google.appengine.tools.development.DevAppServerMain --port=3333 /
Users/Arkaaito/Documents/AppEngine/scratch/surreality/war

有没有人以前遇到过这个问题,或者有没有人遇到过 关于我们应该做什么来调试的建议?我确信这很简单,可能是一个配置问题,但作为新手,我们不确定除了类路径之外还要看什么。


在你的WEB-INF/lib目录,你有一些子目录google-api-java-client-1.4.1-beta and google-api-java-client-1.4.1-beta/dependencies那些子目录中的 jars 应该直接位于WEB-INF/lib

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

使用 Google App Engine for Java 出现 ClassNotFoundException 的相关文章

随机推荐

  • GCC 有多少个优化级别?

    多少GCC优化级别有哪些 我尝试了 gcc O1 gcc O2 gcc O3 和 gcc O4 如果我使用非常大的数字 它将不起作用 不过 我已经尝试过 gcc O100 它编译了 有多少个优化级别 迂腐地说 您可以为 gcc 提供 8 个
  • 如何在 VSTS 构建代理上的本地主机上打开 TCP 端口?

    使用 Visual Studio Team Services 的在线托管版本时 我的单元测试无法连接到侦听生成代理本地主机上的 TCP 端口的服务 该服务能够启动并打开 TCP 端口 但在单元测试中似乎无法访问 错误信息 2017 06 2
  • ActionController::RoutingError(未初始化常量 AdminsController)

    我正在使用 Rails 3dhtmlxGrid 我创建了一个名为的控制器admin我们定义了 3 个函数 例如view data dbaction及其视图文件 下面是我的admin控制器文件 class AdminController lt
  • 无需 jQuery 即可平滑滚动锚链接

    是否可以使用平滑滚动来锚定链接 但是without jQuery 我正在创建一个新网站 但我不想使用jQuery 扩展这个答案 https stackoverflow com a 8918062 3851798 定义scrollTo函数后
  • 如何使用 wp7 的 GPS 获取地址名称

    我可以使用 GeoCoordinateWatcher 类获取 Windows Phone 7 上的当前 GPS 坐标 如下所示msdn 我只能得到Latitude and 经度值 但我想得到Address那个位置的 市场上有一个名为 Whe
  • 为什么 map/filter ... 不适用于无数组?

    Nothing 不是所有类型的子类型吗 scala gt val array new Array 5 array Array Nothing Array null null null null null scala gt array map
  • 列出所有应用程序 - 输出为文本文件

    我只是想知道如何使用最好的 applescript 来查找 Mac OS X 10 5 上安装的所有应用程序 并将其所有应用程序名称输出到文本文件中 Mac OS X 下安装的所有应用程序都注册在启动服务数据库 Launch Service
  • 如何使用 GitHub API?

    当它告诉我使用时 我不确定这意味着什么 GET repos owner repo commits sha 我如何使用该 API 调用来检索我正在查找的信息 GET repos owner repo commits sha GET是用于调用此
  • 绕特定点旋转(例如,绕0,0,0旋转)

    我一直在这个问题上进行了很多搜索 但我找不到真正合适的答案 我需要围绕给定点 例如 0 0 0 旋转圆柱体 但圆柱体的枢轴是默认给定的 我该如何改变它 I found this主题 这正是我想做的 但我不知道如何用 java 来做 为了更好
  • 列出实现接口的类的所有属性

    我有一个带有接口的类 TInterface interface IXMLNode function Get One Boolean function Get Two Boolean function Get Three Boolean pr
  • php - 我应该在调用 Location: header 之后调用 exit() 吗? [复制]

    这个问题在这里已经有答案了 调用重定向函数头后 是否应该调用 exit 谢谢 你绝对应该 单独设置标头不会终止脚本执行
  • 在 .NET C# 中存储加密密钥的最佳方法

    在我们的应用程序中 我们有很多敏感的配置设置 我们将它们存储在再次加密的 xml 文件中 该安全文件必须在运行时解密并读取配置值 但是出现了一个问题 密钥和初始化向量是硬编码在代码中的 因此任何人都可以使用 Reflector 读取它 在
  • 使用java从服务器(ServerSocket)读取客户端(客户端Socket)上的字节包

    我是新人 我是一名 Java 开发人员 新手 目前我正在从事 BSE 项目 我面临着从服务器 服务器套接字 读取客户端 客户端套接字 上的字节包的问题 如果你能帮助我 请帮助我 提前致谢 好吧 如果你想直接与数据包交互 那么你需要使用Dat
  • 如何从User字段LookupId获取用户

    我在 sharepoint 在线有一个列表 在这个列表中 我有一个人员字段 当我调用 API 端点来获取列表中的所有项目时 我获得了 person 字段的 LookupId 值 我尝试使用lookupid的值来获取用户 但它不起作用 因为该
  • 为什么 Hibernate 会忽略 package-info.java?

    我正在尝试在包级别上使用 Hibernate TypeDef 注释 正如它所描述的那样休眠文档 我在用着Hibernate 3 6 and Spring 3 0 7 代码编译并显示package info class位于类路径中 但 Hib
  • 我们究竟如何计算时间戳差异?

    我们将时间戳作为姿势 图片和点数据的双精度值 它们并不总是对齐 如何计算两个时间戳之间的时间距离 是的 我知道如何减去两个双精度数 但我完全不确定增量如何与时间相对应 我有一些有趣的时间戳数据可以阐明您的问题 但没有准确回答它 我一直在尝试
  • MySQL BIGINT(20) 与 Varchar(31) 性能对比

    我读过 像 23423423423423423637 这样的 bigint 作为 primare 唯一键比像 961637593864109 412954765521130 这样的 varchar 更好 但是how当有 100 万行时 我永
  • twig 继承和 symfony2 控制器变量

    我正在尝试使用 symfony2 twig 进行我的第一个项目 我使用定义的块创建了基本的树枝模板 它基本上看起来像这样 block content some content endblock block footer footer con
  • angularJS:用于溢出文本和性能的 dotdotdot

    我是 angularJS 的新手 也许写了一些不好的东西 但我怎样才能正确实现这个插件 https github com BeSite jQuery dotdotdot 在我的桌子上吗 现在用我的代码我的编辑表单和表格真的不太快 真的太慢
  • 使用 Google App Engine for Java 出现 ClassNotFoundException

    我和一个朋友正在使用 Java SDK 涉足 App Engine 我们已经 毫无问题地组合一个 Hello World 示例 然而 当 我们尝试添加代码以使用以下方式对 Web 服务进行简单调用 com google api client