2016-05-10 2 views
0

Я хочу, чтобы вставить объект в Кассандры использованием Кундера рамки, но я получаю эту ошибку:Кундера: java.lang.ClassCastException: java.lang.String не может быть приведен к [B

java.lang.RuntimeException: java.lang.ClassCastException: java.lang.String cannot be cast to [B 
     at org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:448) ~[storm-core-1.0.0.jar:1.0.0] 
     at org.apache.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:414) ~[storm-core-1.0.0.jar:1.0.0] 
     at org.apache.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:73) ~[storm-core-1.0.0.jar:1.0.0] 
     at org.apache.storm.daemon.executor$fn__8226$fn__8239$fn__8292.invoke(executor.clj:851) ~[storm-core-1.0.0.jar:1.0.0] 
     at org.apache.storm.util$async_loop$fn__554.invoke(util.clj:484) [storm-core-1.0.0.jar:1.0.0] 
     at clojure.lang.AFn.run(AFn.java:22) [clojure-1.7.0.jar:?] 
     at java.lang.Thread.run(Thread.java:745) [?:1.7.0_99] 
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to [B 
     at org.apache.storm.tuple.TupleImpl.getBinaryByField(TupleImpl.java:185) ~[storm-core-1.0.0.jar:1.0.0] 
     at connector.bolt.PrinterBolt.execute(PrinterBolt.java:59) ~[Zorro-0.0.1-SNAPSHOT-jar-with-dependencies.jar:?] 
     at org.apache.storm.daemon.executor$fn__8226$tuple_action_fn__8228.invoke(executor.clj:731) ~[storm-core-1.0.0.jar:1.0.0] 
     at org.apache.storm.daemon.executor$mk_task_receiver$fn__8147.invoke(executor.clj:463) ~[storm-core-1.0.0.jar:1.0.0] 
     at org.apache.storm.disruptor$clojure_handler$reify__7663.onEvent(disruptor.clj:40) ~[storm-core-1.0.0.jar:1.0.0] 
     at org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:435) ~[storm-core-1.0.0.jar:1.0.0] 
     ... 6 more 

мой объект класса

@Entity 
@Table(name = "pieces", schema = "[email protected]_pu") 
public class PieceEntitie implements Serializable{ 

    @Id private String IdPiece; 
    @Column private double width; 
    @Column private double height; 
    @Column private double depth; 
    public PieceEntitie() { 
     // TODO Auto-generated constructor stub 
    } 
. 
. 
. 
} 

Я последовал за учебник: https://github.com/impetus-opensource/Kundera/wiki/Getting-Started-in-5-minutes

есть ли у вас какое-либо представление об источнике этой проблемы и как мы можем ее решить? спасибо

+0

Это не класс, вы должны посмотреть –

+0

Я не понимаю, что вы подразумеваете под этим, это не класс. Я пытаюсь сохранить объект PieceEntitie в cassandra, но я получаю эту ошибку –

ответ

0

Проблема при помощи метода Бури TupleImpl.getBinaryByField() он бросает исключение Wich говорит, что он не может получить byte[] от String. Штормовой кортеж имеет некоторое строковое значение внутри, и вы пытаетесь получить байт-массив.

+0

Я знаю, и для этого я конвертирую байт [] в строку –

+0

Если вы конвертируете byte [] в String, почему вы пытаетесь получить байт []? Этот метод 'getBinaryByField' предназначен для выборки байтов [], а не строк. – f1sherox

+0

Я не использую какой-либо метод с именем getBinaryByField –