[
https://issues.apache.org/jira/browse/NIFI-4240?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michał Terbert updated NIFI-4240:
---------------------------------
Description:
We can not set in Kafka Consumer Processor key.deserilzer or value.deserilizer:
{quote}Key/value De-Serializer must be ByteArrayDeserializer.class{quote}
After prepare our custom class based on ByteArrayDeserializer we can not still
use them.
Workaround:
Modify KafkaProcessorUtils.java:
Comment below lines:
{code:java}
final String keyDeSerializer = validationContext.getProperty(new
PropertyDescriptor.Builder().name(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG).build()).getValue();
if (keyDeSerializer != null &&
!ByteArrayDeserializer.class.getName().equals(keyDeSerializer)) {
results.add(new
ValidationResult.Builder().subject(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG)
.explanation("Key De-Serializer must be '" +
ByteArrayDeserializer.class.getName() + "' was '" + keyDeSerializer +
"'").build());
}
final String valueDeSerializer = validationContext.getProperty(new
PropertyDescriptor.Builder().name(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG).build()).getValue();
if (valueDeSerializer != null &&
!ByteArrayDeserializer.class.getName().equals(valueDeSerializer)) {
results.add(new
ValidationResult.Builder().subject(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG)
.explanation("Value De-Serializer must be " +
ByteArrayDeserializer.class.getName() + "' was '" + valueDeSerializer +
"'").build());
}{code}
was:
We can not set in Kafka Consumer Processor key.deserilzer or value.deserilizer:
{quote}Key/value De-Serializer must be ByteArrayDeserializer.class{quote}
After prepare our custom class based on ByteArrayDeserializer we can not still
use them.
Workaround:
Modify KafkaProcessorUtils.java:
Comment below lines:
{code:java}
// final String keyDeSerializer = validationContext.getProperty(new
PropertyDescriptor.Builder().name(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG).build()).getValue();
// if (keyDeSerializer != null &&
!ByteArrayDeserializer.class.getName().equals(keyDeSerializer)) {
// results.add(new
ValidationResult.Builder().subject(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG)
// .explanation("Key De-Serializer must be '" +
ByteArrayDeserializer.class.getName() + "' was '" + keyDeSerializer +
"'").build());
// }
// final String valueDeSerializer = validationContext.getProperty(new
PropertyDescriptor.Builder().name(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG).build()).getValue();
// if (valueDeSerializer != null &&
!ByteArrayDeserializer.class.getName().equals(valueDeSerializer)) {
// results.add(new
ValidationResult.Builder().subject(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG)
// .explanation("Value De-Serializer must be " +
ByteArrayDeserializer.class.getName() + "' was '" + valueDeSerializer +
"'").build());
// }
{code}
> Setting value.deserializer and key.deserializer in consume kafka
> -----------------------------------------------------------------
>
> Key: NIFI-4240
> URL: https://issues.apache.org/jira/browse/NIFI-4240
> Project: Apache NiFi
> Issue Type: Bug
> Components: Extensions
> Affects Versions: 1.3.0
> Reporter: Michał Terbert
>
> We can not set in Kafka Consumer Processor key.deserilzer or
> value.deserilizer:
> {quote}Key/value De-Serializer must be ByteArrayDeserializer.class{quote}
> After prepare our custom class based on ByteArrayDeserializer we can not
> still use them.
> Workaround:
> Modify KafkaProcessorUtils.java:
> Comment below lines:
> {code:java}
> final String keyDeSerializer = validationContext.getProperty(new
> PropertyDescriptor.Builder().name(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG).build()).getValue();
> if (keyDeSerializer != null &&
> !ByteArrayDeserializer.class.getName().equals(keyDeSerializer)) {
> results.add(new
> ValidationResult.Builder().subject(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG)
> .explanation("Key De-Serializer must be '" +
> ByteArrayDeserializer.class.getName() + "' was '" + keyDeSerializer +
> "'").build());
> }
> final String valueDeSerializer = validationContext.getProperty(new
> PropertyDescriptor.Builder().name(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG).build()).getValue();
> if (valueDeSerializer != null &&
> !ByteArrayDeserializer.class.getName().equals(valueDeSerializer)) {
> results.add(new
> ValidationResult.Builder().subject(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG)
> .explanation("Value De-Serializer must be " +
> ByteArrayDeserializer.class.getName() + "' was '" + valueDeSerializer +
> "'").build());
> }{code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)