- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 AppEngine java 版本 1.9.4 和 Ninja Web 框架 3.1.5。
当我尝试在 AppEngine 中启动 MapJob 时:
String datastoreType = "ENTITY_NAME";
int mapShardCount = 1;
DatastoreKeyInput input = new DatastoreKeyInput(datastoreType, mapShardCount);
DeleteEntityMapper mapper = new DeleteEntityMapper();
MapSpecification<Key, Void, Void> specification = new MapSpecification.Builder<Key, Void, Void>(input, mapper)
.setJobName("Delete MapReduce entities")
.build();
MapSettings settings = new MapSettings.Builder()
.setWorkerQueueName("mapreduce-workers")
.setModule("mapreduce")
.build();
String id = MapJob.start(specification, settings);//run MapJob
但我收到此错误:com.google.appengine.api.modules.ModulesException:未知模块
[INFO] Aug 05, 2014 9:55:29 AM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
[INFO] INFO: Successfully processed D:\Programs\sts\workspace\AAAAAA\target\aaa_AAAAAA-0.0.1-SNAPSHOT\WEB-INF/queue.xml
[INFO] Aug 05, 2014 9:55:29 AM com.google.appengine.api.taskqueue.dev.LocalTaskQueue init
[INFO] INFO: LocalTaskQueue is initialized
[INFO] Aug 05, 2014 9:55:29 AM org.quartz.simpl.SimpleThreadPool initialize
[INFO] INFO: Job execution threads will use class loader of thread: pool-2-thread-1
[INFO] Aug 05, 2014 9:55:29 AM org.quartz.core.QuartzScheduler <init>
[INFO] INFO: Quartz Scheduler v.UNKNOWN.UNKNOWN.UNKNOWN created.
[INFO] Aug 05, 2014 9:55:29 AM org.quartz.simpl.RAMJobStore initialize
[INFO] INFO: RAMJobStore initialized.
[INFO] Aug 05, 2014 9:55:29 AM org.quartz.impl.StdSchedulerFactory instantiate
[INFO] INFO: Quartz scheduler 'DefaultQuartzScheduler' initialized from default resource file in Quartz package: 'quartz.properties'
[INFO] Aug 05, 2014 9:55:29 AM org.quartz.impl.StdSchedulerFactory instantiate
[INFO] INFO: Quartz scheduler version: UNKNOWN.UNKNOWN.UNKNOWN
[INFO] Aug 05, 2014 9:55:29 AM org.quartz.core.QuartzScheduler start
[INFO] INFO: Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
[INFO] Aug 05, 2014 9:55:29 AM com.google.appengine.api.taskqueue.dev.LocalTaskQueue start_
[INFO] INFO: Local task queue initialized with base url http://127.0.0.1:8080
[INFO] Aug 05, 2014 9:55:29 AM ninja.NinjaImpl invoke
[INFO] SEVERE: Emitting bad request 400. Something really wrong when calling route: /init/mapperTimezone.json (class: class com.aaa.AAAAAA.controllers.DATAController method: public ninja.Result com.aaa.AAAAAA.controllers.DATAController.mapperTimezone())
[INFO] com.google.appengine.api.modules.ModulesException: Unknown module
[INFO] at com.google.appengine.api.modules.ModulesServiceImpl$ModulesServiceFutureWrapper.convertApplicationException(ModulesServiceImpl.java:365)
[INFO] at com.google.appengine.api.modules.ModulesServiceImpl$ModulesServiceFutureWrapper.convertException(ModulesServiceImpl.java:352)
[INFO] at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:94)
[INFO] at com.google.appengine.api.modules.ModulesServiceImpl.getAsyncResult(ModulesServiceImpl.java:104)
[INFO] at com.google.appengine.api.modules.ModulesServiceImpl.getDefaultVersion(ModulesServiceImpl.java:163)
[INFO] at com.google.appengine.tools.pipeline.impl.model.JobRecord.<init>(JobRecord.java:369)
[INFO] at com.google.appengine.tools.pipeline.impl.model.JobRecord.<init>(JobRecord.java:379)
[INFO] at com.google.appengine.tools.pipeline.impl.model.JobRecord.createRootJobRecord(JobRecord.java:393)
[INFO] at com.google.appengine.tools.pipeline.impl.PipelineManager.registerNewJobRecord(PipelineManager.java:155)
[INFO] at com.google.appengine.tools.pipeline.impl.PipelineManager.startNewPipeline(PipelineManager.java:107)
[INFO] at com.google.appengine.tools.pipeline.impl.PipelineServiceImpl.startNewPipeline(PipelineServiceImpl.java:42)
[INFO] at com.google.appengine.tools.mapreduce.MapJob.start(MapJob.java:63)
[INFO] at com.aaa.AAAAAA.controllers.DATAController.mapperTimezone(DATAController.java:49)
[INFO] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[INFO] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[INFO] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[INFO] at java.lang.reflect.Method.invoke(Method.java:606)
[INFO] at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:115)
[INFO] at ninja.params.ControllerMethodInvoker.invoke(ControllerMethodInvoker.java:55)
[INFO] at ninja.FilterChainEnd.next(FilterChainEnd.java:48)
[INFO] at ninja.appengine.AppEngineFilter.filter(AppEngineFilter.java:69)
[INFO] at ninja.FilterChainImpl.next(FilterChainImpl.java:35)
[INFO] at ninja.NinjaImpl.invoke(NinjaImpl.java:112)
[INFO] at ninja.servlet.NinjaServletDispatcher.service(NinjaServletDispatcher.java:83)
[INFO] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
[INFO] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
[INFO] at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
[INFO] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
[INFO] at com.googlecode.objectify.cache.AsyncCacheFilter.doFilter(AsyncCacheFilter.java:58)
[INFO] at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48)
[INFO] at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
[INFO] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
[INFO] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
[INFO] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
[INFO] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
[INFO] at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)
[INFO] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
[INFO] at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:127)
[INFO] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
[INFO] at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
[INFO] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
[INFO] at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)
[INFO] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
[INFO] at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
[INFO] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
[INFO] at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125)
[INFO] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
[INFO] at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)
[INFO] at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349)
[INFO] at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)
[INFO] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
[INFO] at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
[INFO] at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
[INFO] at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
[INFO] at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
[INFO] at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
[INFO] at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:98)
[INFO] at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
[INFO] at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:491)
[INFO] at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
[INFO] at org.mortbay.jetty.Server.handle(Server.java:326)
[INFO] at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
[INFO] at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
[INFO] at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
[INFO] at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
[INFO] at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
[INFO] at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
[INFO] at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
有人遇到同样的错误吗?有什么建议可以解决这个问题吗?
最佳答案
我认为您只是忘记更新 web.xml 配置文件(如引用文献中所述)以声明您的 map 作业:
“在运行作业之前,您还必须将 MapReduce 库和其他信息添加到应用程序的配置文件中。Configuring your Project 中对此进行了描述。”
关于java - 启动 AppEngine MapJob 出现错误 : com. google.appengine.api.modules.ModulesException:未知模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25130653/
我正在使用 AppEngine java 版本 1.9.4 和 Ninja Web 框架 3.1.5。 当我尝试在 AppEngine 中启动 MapJob 时: String datastoreTy
我正在尝试将 1.8.x 之前的 Google App Engine 应用程序移植到 1.8.7 我在本地开发服务器上以及在每次调用 URL 时将我的应用程序部署到 GAE 时遇到以下错误。 我看到其
我最近将我的应用引擎 SDK 从 1.7.7.1 升级到 1.8.5,我的端点 API 停止工作。我的 API 浏览器甚至不会加载。调高日志级别后,我在尝试访问 API 资源管理器时发现了以下错误。我
我是一名优秀的程序员,十分优秀!