我能够将我的JavaBean类作为avro记录发布到kafka。但当我尝试消费时,我得到了类强制转换异常。为什么会发生这种情况?
制作人
Schema schema = new Schema.Parser().parse(new File("/schemas/avro_schemas/test_schema.avsc"));
GenericRecord payload = new GenericData.Record(schema);
payload.put("name", fileName);
payload.put("timestamp", dateTime.toString());
payload.put("source", source);
payload.put("content", buf);
payload.put("customerCode", customercode);
producer.publish(topic, payload, schema);
消费者
ConsumerIterator<byte[], byte[]> it = stream.iterator();
while (it.hasNext()) {
try {
byte[] received_message = it.next().message();
Schema schema = new Schema.Parser().parse(new File("/schemas/avro_schemas/test_schema.avsc"));
DatumReader<GenericRecord> reader = new SpecificDatumReader<GenericRecord>(schema);
Decoder decoder = DecoderFactory.get().binaryDecoder(received_message, null);
GenericRecord payload = reader.read(null, decoder);
例外
ava.lang.ClassCastException: com.xxx.File cannot be cast to org.apache.avro.generic.IndexedRecord
at org.apache.avro.generic.GenericData.setField(GenericData.java:573)
at org.apache.avro.generic.GenericData.setField(GenericData.java:590)
at org.apache.avro.generic.GenericDatumReader.readField(GenericDatumReader.java:193)
at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:183)
at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:151)
at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:142)
at com.xxx.listener.KafkaMessageListenerThread.run(KafkaMessageListenerThread.java:56)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.
Avro模式
{
"namespace": "com.xx"
"type": "record",
"name": "File",
"fields":[
{
"name": "name", "type": "string"
},
{
"name": "timestamp", "type": "string"
},
{
"name": "source", "type": "string"
},
{
"name": "content", "type": "bytes"
},
{
"name": "customerCode", "type": "string"
}
]
}
尝试<code>org.apache.avro.reflect。ReflectDatumReader而不是<code>org.apache.avro.specific.SpecificDatumReader。
我向服务器调用一个请求网络,服务器总是响应如下所示的格式json: 对于每种请求,只有jsonObject数据包含不同的字段。新响应的示例: 因此,我决定让一个通用类调用ServerResult包含一个字段“Object”,以便将其强制转换为特定对象。 //ServerResult.class //client.java 请求完成后,我通过GSON将json转换为ServerResult对象: 然
以下是异常日志: 下面是android.app.ContextImpl.GetSharedReferences异常抛出的代码 让我们假设日志信息是正确的,它应该几乎是正确的。 我的第一个问题是:在文件的第358行抛出强制转换异常ContextImpl.java什么意思?那里只有一个右括号。 我猜第358行下面的语句是异常的根本原因 因为sp被声明为SharedReferencesImpl,并且当g
首先,请记住我是一个Java新手,这对我来说都是未探索的领域。 我遵循了一个指南(大约6个月前)来实现Spring Security性,但从未找到一个专门用于单独前端层的指南。 在实现令牌之前,每个步骤都有效,我得到了这个错误: 我在这里看到过其他类似的帖子,尽管它们讨论的内容不同 例如。 > 用户不能被强制转换为com.example.security.CustomUserDetailsSpri
我创建了一个简单的Web API项目,我正试图用邮递员软件发布数据,但有些东西不起作用... 我的web api控制器的名称是ValuesController。 我的数据如下所示: 当我将Post方法修改为: 我收到邮递员的“坏请求”信息
本文向大家介绍PHP+AJAX 投票器功能,包括了PHP+AJAX 投票器功能的使用技巧和注意事项,需要的朋友参考一下 终于到AJAX,翻译过来就是”异步Javascript和XML”,他可以实现网页内容的部分加载,可提高用户体验。现在有很多网站都有用这技术,反正你知道他能实现网页的异步更新就差不多了。当然下面的例子都相对简单,并没有体现它这一特点~ 投票器 新建文件【 AJAX投票.html】
问题内容: 我想从数据库中获取价值,就我而言,我曾经从数据库中获取价值,但是却遇到了这个错误 这是我的代码 任何帮助将是荣幸:) @raffian,你的意思是这样吗? 问题答案: 问题是 这将返回一个 对象数组 列表 (Object []), 其中包含表中每一列的标量值。Hibernate将使用ResultSetMetadata推断返回的标量值的实际顺序和类型。 解 相关连结 使用迭代器