Исключение NoSuchMethod во Flink при использовании набора данных с пользовательским массивом объектов

У меня проблема с Флинком

java.lang.NoSuchMethodError: org.apache.flink.api.java.typeutils.ObjectArrayTypeInfo.getInfoFor(Lorg/apache/flink/api/common/typeinfo/TypeInformation;)Lorg/apache/flink/api/java/typeutils/ObjectArrayTypeInfo;
    at LowLevel.FlinkImplementation.FlinkImplementation$$anon$6.<init>(FlinkImplementation.scala:28)
    at LowLevel.FlinkImplementation.FlinkImplementation.<init>(FlinkImplementation.scala:28)
    at IRLogic.GmqlServer.<init>(GmqlServer.scala:15)
    at it.polimi.App$.main(App.scala:20)
    at it.polimi.App.main(App.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    ...

строка с проблемой вот эта

implicit val regionTypeInformation = 
         api.scala.createTypeInformation[FlinkDataTypes.FlinkRegionType]

в FlinkRegionType у меня есть Array пользовательского объекта

Я разработал приложение с плагином maven в среде IDE, и все работает хорошо, но когда я перехожу на версию, загруженную с веб-сайта, я получаю сообщение об ошибке выше.

Я использую Флинк 0.9

Я думал, что какая-то библиотека может отсутствовать, но я использую maven для обработки всего. Кроме того, просматривая код ObjectArrayTypeInfo.java похоже, это не проблема


person il.bert    schedule 08.05.2015    source источник
comment
Вы уверены, что используете те же версии Flink? Архетипы Maven для быстрого запуска настроены для Flink 0.8.1. Можете ли вы проверить файл pom.xml, правильно ли установлена ​​версия 0,9 (веха-1 или SNAPSHOT)?   -  person Fabian Hueske    schedule 08.05.2015
comment
в pom.xml у меня есть 0.9-SNAPSHOT, в веб-клиенте 0.9.0-milestone-1   -  person il.bert    schedule 08.05.2015
comment
Вы пытались установить для pom.xml значение 0.9.0-milestone-1 и перестроить JAR-файл программы?   -  person Fabian Hueske    schedule 08.05.2015
comment
хорошо, используя веху-1 в maven, он показал мне несколько разных ошибок, но после их решения все работает правильно, спасибо. если вы опубликуете ответ, я отмечу его как правильный   -  person il.bert    schedule 08.05.2015
comment
Возможный дубликат java.lang.NoSuchMethodError во Flink   -  person Yaroslav    schedule 25.10.2017


Ответы (1)


NoSuchMethodError обычно указывает на несоответствие версии между библиотеками, с которыми была скомпилирована программа Flink, и системой, в которой программа выполняется. Особенно, если один и тот же код работает в среде IDE, где библиотеки компиляции и исполнения одинаковы.

В таком случае вам следует проверить версию зависимостей Flink, например, в файле Maven POM.

person Fabian Hueske    schedule 08.05.2015