Scala案例类中的init方法的java.lang.NoSuchMethodException

阿米特·阿罗拉(Amit Arora)

我正在编写一个Apache Flink流应用程序,该程序反序列化从Kafka总线读取的数据(Avro格式)(有关更多详细信息,请参见此处)。数据将反序列化为Scala案例类。运行程序时出现异常,它收到了来自Kafka的第一条消息

Exception in thread "main" org.apache.flink.runtime.client.JobExecutionException: java.lang.RuntimeException: java.lang.NoSuchMethodException: org.myorg.quickstart.DeviceData.<init>()
    at org.apache.flink.runtime.minicluster.MiniCluster.executeJobBlocking(MiniCluster.java:625)
    at org.apache.flink.streaming.api.environment.LocalStreamEnvironment.execute(LocalStreamEnvironment.java:121)
    at org.apache.flink.streaming.api.scala.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.scala:654)
    at org.myorg.quickstart.StreamingKafkaClient$.main(StreamingKafkaClient.scala:26)
    at org.myorg.quickstart.StreamingKafkaClient.main(StreamingKafkaClient.scala)
Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodException: org.myorg.quickstart.DeviceData.<init>()
    at org.apache.avro.specific.SpecificData.newInstance(SpecificData.java:353)
    at org.apache.avro.specific.SpecificData.newRecord(SpecificData.java:369)
    at org.apache.avro.reflect.ReflectData.newRecord(ReflectData.java:901)
    at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:212)
    at org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:175)
    at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:153)
    at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:145)
    at org.myorg.quickstart.AvroDeserializationSchema.deserialize(AvroDeserializationSchema.scala:20)
    at org.apache.flink.streaming.util.serialization.KeyedDeserializationSchemaWrapper.deserialize(KeyedDeserializationSchemaWrapper.java:44)
    at org.apache.flink.streaming.connectors.kafka.internal.Kafka09Fetcher.runFetchLoop(Kafka09Fetcher.java:142)
    at org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumerBase.run(FlinkKafkaConsumerBase.java:738)
    at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:87)
    at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:56)
    at org.apache.flink.streaming.runtime.tasks.SourceStreamTask.run(SourceStreamTask.java:99)
    at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:306)
    at org.apache.flink.runtime.taskmanager.Task.run(Task.java:703)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoSuchMethodException: org.myorg.quickstart.DeviceData.<init>()
    at java.lang.Class.getConstructor0(Class.java:3082)
    at java.lang.Class.getDeclaredConstructor(Class.java:2178)
    at org.apache.avro.specific.SpecificData.newInstance(SpecificData.java:347)
    ... 16 more

Process finished with exit code 1

Scala案例类非常简单:

package org.myorg.quickstart


/** Case class to hold the Device data. */
case class DeviceData(deviceId: String,
                    sw_version: String,
                    timestamp: String,
                    reading: Double
                   ) 

不知道为什么case类需要一个“ init”方法。如何执行此操作的示例?我应该使用除案例类之外的其他数据结构吗?

蒂尔·罗尔曼

Avro序列化程序或更具体地说,SpecificData要求目标类型具有默认构造函数(不带参数的构造函数)。否则,Avro无法实例化目标类型的对象。

尝试通过添加默认构造函数

case class DeviceData(
    deviceId: String,
    sw_version: String,
    timestamp: String,
    reading: Double) {
  def this() = this("default", "default", "default", 0)
} 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自分类Dev

Kotlin java.lang.NoSuchMethodException:<init>()

来自分类Java

java.lang.NoSuchMethodException为的onCreate

来自分类Dev

android java.lang.AssertionError:java.lang.NoSuchMethodException-Proguard

来自分类Java

java.lang.NoSuchMethodException:userAuth.User。<init>()

来自分类Java

java.lang.NoSuchMethodException:package.ClassName。<init>()使用Class <?>

来自分类Java

错误:java.lang.NoSuchMethodException:Spring MVC中的java.lang.Long。<init>()

来自分类Java

java.lang.NoSuchMethodException:scala.collection.immutable。$ colon $ colon

来自分类Java

Java反射错误Java.lang.NoSuchMethodException,但是方法存在

来自分类Dev

java.lang.NoSuchMethodException:Bean没有名为的属性

来自分类Java

尝试使用OncePerRequestFilter时发生java.lang.NoSuchMethodException

来自分类Dev

如何调用字符串数组中的Java方法?(java.lang.NoSuchMethodException)

来自分类Dev

Java反射:原始int的构造函数原因:java.lang.NoSuchMethodException:int。<init>(int)

来自分类Dev

获取java.lang.NoSuchMethodException:javafx.application.Platform.startup(java.lang.Runnable)

来自分类Java

启动Servlet筛选器时如何解决java.lang.NoSuchMethodException:package.MyCustomFilter。<init>()

来自分类Java

自定义弹簧条件导致java.lang.NoSuchMethodException:<init>()异常

来自分类Dev

导致此异常的原因java.lang.RuntimeException:java.lang.NoSuchMethodException:<init> [class android.view.View]

来自分类Java

在构造函数中传递java.lang.Integer的参数时,发生NoSuchMethodException(反射)

来自分类Java

获取java.lang.NoSuchMethodException:使用PropertyUtils.setSimpleProperty函数时,属性“ xx”在类“类xx”中没有setter方法

来自分类Java

java.lang.NoSuchMethodException:org.springframework.boot.autoconfigure.http.HttpMessageConverters

来自分类Java

找不到默认的构造函数;嵌套异常是Spring MVC的java.lang.NoSuchMethodException?

来自分类Dev

无法在pyspark中加载已保存的Spark模型:“ java.lang.NoSuchMethodException”

来自分类Dev

启动服务器时发生异常:java.lang.NoSuchMethodException:org.springframework.security.authentication.ProviderManager。<init>()

来自分类Dev

引起原因:java.lang.NoSuchMethodException:<init> [class android.content.Context,接口android.util.AttributeSet]

来自分类Java

JAVA getConstructor抛出NoSuchMethodException

来自分类Java

Spring Webflux注释的rest控制器不支持ServerHttpRequest作为方法参数:java.lang.NoSuchMethodException

来自分类Java

Spring不接受多部分文件列表:java.lang.NoSuchMethodException:org.springframework.web.multipart.MultipartFile

来自分类Java

创建名称为'application'的bean时出错,找不到默认的构造函数;嵌套的异常是java.lang.NoSuchMethodException

来自分类Java

xjc,maven-jaxb2-plugin:神秘的java.lang.NoSuchMethodException:javax.xml.bind.annotation.XmlElementRef.required()

来自分类Java

从JDK8升级到JDK11后,怪异的java.lang.InstantiationException和java.lang.NoSuchMethodException

TOP 榜单

热门标签

归档