/ / Eccezione NoSuchMethod in Flink quando si utilizza un set di dati con un array di oggetti personalizzato - scala, maven, apache-flink

Eccezione NoSuchMethod in Flink quando si utilizza un set di dati con un array di oggetti personalizzato - scala, maven, apache-flink

Ho un problema con 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)
...

la linea con il problema è questa

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

nel FlinkRegionType ho un Array di oggetto personalizzato

Ho sviluppato l'app con il plugin Maven nell'IDE e tutto funziona correttamente, ma quando passo alla versione che ho scaricato dal sito ho ricevuto l'errore sopra

Sto usando Flink 0.9

Stavo pensando che alcune librerie potrebbero mancare ma sto usando Maven per gestire tutto. Inoltre eseguendo il codice di ObjectArrayTypeInfo.java non sembra essere il problema

risposte:

3 per risposta № 1

UN NoSuchMethodError indica comunemente una mancata corrispondenza tra la versionelibrerie con il programma Flink e il sistema su cui è eseguito il programma. Soprattutto se lo stesso codice funziona in una configurazione IDE in cui le librerie di compilazione e di esecuzione sono le stesse.

In tal caso, dovresti controllare la versione delle dipendenze di Flink, ad esempio nel file MAVen POM.