Исключение NoSuchMethodError из конвейера Java MapReduce POST /mapreduce/workerCallback?

Знаете ли вы об обходном пути для этого необработанного исключения из конвейера Java mapreduce в Google App Engine?

Это просто ошибка в GcsServiceFactory, которая создала GCS_SERVICE в этой строке? https://code.google.com/p/appengine-mapreduce/source/browse/trunk/java/src/com/google/appengine/tools/mapreduce/inputs/GoogleCloudStorageLineInputReader.java?r=462#80

Есть идеи как починить?

Мы видим это часто:

 2013-09-24 18:18:17.819 Uncaught exception from servlet
 java.lang.NoSuchMethodError:
 com.google.appengine.tools.cloudstorage.GcsService.openPrefetchingReadChannel(Lcom/google/appengine/tools/cloudstorage/GcsFilename;JI)Ljava/nio/channels/ReadableByteChannel;
    at com.google.appengine.tools.mapreduce.inputs.GoogleCloudStorageLineInputReader.beginSlice(GoogleCloudStorageLineInputReader.java:79)
    at com.google.appengine.tools.mapreduce.impl.WorkerShardTask.run(WorkerShardTask.java:84)
    at com.google.appengine.tools.mapreduce.impl.shardedjob.ShardedJobRunner.runTask(ShardedJobRunner.java:265)
    at com.google.appengine.tools.mapreduce.impl.shardedjob.ShardedJobServiceImpl.handleWorkerRequest(ShardedJobServiceImpl.java:49)
    at com.google.appengine.tools.mapreduce.impl.handlers.MapReduceServletImpl.doPost(MapReduceServletImpl.java:76)
    at com.google.appengine.tools.mapreduce.MapReduceServlet.doPost(MapReduceServlet.java:57)

1 ответ

Решение

Я вижу любую из следующих возможных причин:

  1. Вы не включили все банки в classpath, они могут иметь взаимозависимые классы.
  2. Вы jar - старая версия, у которой нет этого метода.
  3. Отсутствует некоторый зависимый jar, который не позволяет конструктору класса инициализировать объект класса.
Другие вопросы по тегам