Recentemente ho notato che Camel ora ha il suo componente per Kafka, quindi ho deciso di dargli un vortice.Integrazione Camel Kafka
ho deciso di provare un bel semplice file -> topic Kafka come segue ...
<route>
<from uri="file:///tmp/input" />
<setHeader headerName="kafka.PARTITION_KEY">
<constant>Test</constant>
</setHeader>
<to uri="kafka:localhost:9092?topic=test&zookeeperHost=localhost&zookeeperPort=2181&groupId=group1" />
</route>
Questo sembra abbastanza semplice, tuttavia, a correre questo ho ...
java.lang.ClassCastException: java.lang.String cannot be cast to [B
at kafka.serializer.DefaultEncoder.toBytes(Encoder.scala:34)
at org.apache.camel.component.kafka.KafkaProducer.process(KafkaProducer.java:78)
e il controllo sul codice Cammello, si comporta nel modo seguente ...
String msg = exchange.getIn().getBody(String.class);
KeyedMessage<String, String> data = new KeyedMessage<String, String>(topic, partitionKey.toString(), msg);
producer.send(data);
Ovviamente, questo è un problema di serializzazione, io sono solo non sono sicuro se c'è una soluzione alternativa o se questo è intrinsecamente un bug con l'implementazione esistente? (O forse solo il mio equivoco)
Qualche suggerimento? Grazie, J