【问题标题】:Exception in using objectify in GAE在 GAE 中使用 objectify 的异常
【发布时间】:2013-02-20 08:34:54
【问题描述】:

我正在编写一个使用 objectify 的 GAE 程序。我从here 下载objectify-4.0b1.jar 并根据this 添加修改WEB-INF/web.xml。但是,当我运行我的程序时,我收到了以下警告。另一个人遇到了与我几乎相同的问题,但解决方案可能会有所不同,因为我确实使用了最新的 jar 文件。似乎无法加载 com.googlecode.objectify.ObjectifyFilter。谁能告诉我为什么?

EXCEPTION 
java.lang.ClassNotFoundException: com.googlecode.objectify.ObjectifyFilter
    at com.google.appengine.runtime.Request.process-0c7af5c4835ec917(Request.java)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:359)
    at org.mortbay.util.Loader.loadClass(Loader.java:91)
    at org.mortbay.util.Loader.loadClass(Loader.java:71)
    at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73)
    at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:81)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:454)
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:461)
    at com.google.tracing.TraceContext.runInContext(TraceContext.java:703)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:338)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:330)
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:458)
    at java.lang.Thread.run(Thread.java:722)
W 2013-02-19 22:52:33.149
Failed startup of context com.google.apphosting.utils.jetty.RuntimeAppEngineWebAppContext@1687c76{/,/base/data/home/apps/s~zcbtest10/1.365432563369214216}
javax.servlet.UnavailableException: com.googlecode.objectify.ObjectifyFilter
    at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79)
    at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:81)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:219)
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:194)
    at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:134)
    at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:447)
    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:454)
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:461)
    at com.google.tracing.TraceContext.runInContext(TraceContext.java:703)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:338)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:330)
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:458)
    at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
    at java.lang.Thread.run(Thread.java:722)

我在 eclipse 上使用带有 GAE 1.7.5 的最新 objectify。

【问题讨论】:

  • 最明显的答案是你的objectify jar没有和其他东西一起部署到GAE
  • @Peter 如何检查 jar 文件是否已部署?如果没有部署,我该怎么办? (部署由eclipse的插件完成)
  • 看看下面@Romins 的回答

标签: google-app-engine objectify


【解决方案1】:

请将 Objectify JAR 文件复制到项目的 WEB-INF\lib 文件夹中。这将使 Web 容器在运行您的应用程序时可以使用 Objectify 类。

【讨论】:

  • 我必须将jar文件复制到WEB-INF\lib吗?我刚刚将 jar 添加到构建路径中。
  • 是的 - 您必须将文件复制到 WEB-INF\lib 文件夹。
  • 好的!我想我只是在这里问了一个愚蠢的问题:) 感谢您回答这个愚蠢的问题。
  • 完全没问题。很高兴您的问题得到解决。
  • 在哪里可以找到objectify jar?
猜你喜欢
  • 1970-01-01
  • 2012-03-04
  • 2015-08-06
  • 2011-11-21
  • 2020-12-31
  • 2013-01-17
  • 2014-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多