Запустите AppEngine MapJob получил ошибку: com.google.appengine.api.modules.ModulesException: неизвестный модуль

1

Я использую AppEngine java ver 1.9.4 с веб-картой Ninja 3.1.5.

Когда я пытаюсь запустить MapJob в AppEngine:

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)

У кого-то была такая же ошибка? Вы предлагаете разрешить это, пожалуйста?

Теги:
google-app-engine
mapreduce

1 ответ

1

Я думаю, вы просто забыли обновить конфигурационный файл web.xml, как указано в ссылке, для объявления вашего задания на карту:

"Перед выполнением задания вы также должны добавить библиотеку MapReduce и дополнительную информацию в файлы конфигурации приложения. Это описано в разделе" Настройка вашего проекта ".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню