2016-05-01 15 views
-1

私はKafka BrokerのIBM Bluemix実装を使用しています。KafkaProducerのインスタンス化中に例外を取得する

は、私は次のプロパティでKafkaProducerを作成しています。これにより

key.serializer=org.apache.kafka.common.serialization.ByteArraySerializer 
value.serializer=org.apache.kafka.common.serialization.ByteArraySerializer 
bootstrap.servers=xxxx.xxxxxx.xxxxxx.xxxxxx.bluemix.net:xxxx 
client.id=messagehub 
acks=-1 
security.protocol=SASL_SSL 
ssl.protocol=TLSv1.2 
ssl.enabled.protocols=TLSv1.2 
ssl.truststore.location=xxxxxxxxxxxxxxxxx 
ssl.truststore.password=xxxxxxxx 
ssl.truststore.type=JKS 
ssl.endpoint.identification.algorithm=HTTPS 

KafkaProducer<byte[], byte[]> kafkaProducer = 
      new KafkaProducer<byte[], byte[]>(props); 

を私は例外次のようだ:

org.apache.kafka.common.KafkaException: org.apache.kafka。 clients.producer.internals.DefaultPartitionerは ではありません。org.apache.kafka.clients.producer.Partitionerのインスタンス

は、次のブログを読んだ後:

partitioner.class=kafka.producer.ByteArrayPartitioner 

は今、私はこの例外を取得しています:

org.apache http://blog.rocana.com/kafkas-defaultpartitioner-and-byte-arraysは、私は新しいAPIを使用していたにもかかわらず、私のプロパティファイルに次の行を追加しました.kafka.common.KafkaException:クラスをインスタンス化できませんでした kafka.producer.ByteArrayPartitionerパブリック引数なし コンストラクタがありますか?

ByteArrayPartitionerにはデフォルトのコンストラクタがありません。 私はここで何が不足していると思いますか?

おかげ マドゥ

答えて

0

私はKafkaProducerのAPIを使用していたとして、私は

partitioner.class=kafka.producer.ByteArrayPartitioner 

プロパティを必要としませんでした。問題は、kafkaclient jarのコピーが2つあったことです。すべてのライブラリjarファイルが外部の共有ディレクトリにあるようにインストールを構成しました。しかし、POMの設定エラーのために、warファイルにはlibディレクトリにkafkaクライアントのコピーも含まれていました。この問題を修正した後、正常に動作しました。

マドフ

関連する問題