I suppose you are setting the MySqlDB attribute in the Bolt's constructor? The constructor is called *before* serializing the Topology and submitting it to the cluster. Therefore every object within the Topology *before* submitting it must be serializable. You can solve this bei either providing a custom serializer, read more here: http://storm.apache.org/releases/0.10.0/Serialization.html Or you set the MySqlDB object in the Bolt's prepare method which is called *after* submitting the topology.
2016-03-26 0:06 GMT+01:00 I PVP <[email protected]>: > Hi everyone, > > What can be causing a “java.io.NotSerializableException ….Caused by: > java.io.NotSerializableException: > com.fasterxml.jackson.datatype.hibernate5.HibernateSerializers" ? > > I new to Storm. > After successfully developing, deploying to cluster and seeing my first 4 > Topologies( all simple: KafkaSpout-> Bolt) running fine for the last 2 > days, today I created the 5th Topology that the only difference from the > others is the Bolt retrieving a object from MySqlDB via a pre existing > application wide Hibernate DAO. > > Stack Trace : > > RUNNING locally via LocalCluster: > ----- > 30239 [main] INFO b.s.d.supervisor - Starting supervisor with id > c4c8647d-fee5-45a4-a44d-943e5e03e3b0 at host 192.168.56.1 > 30335 [main] ERROR o.a.s.s.o.a.z.s.NIOServerCnxnFactory - Thread > Thread[main,5,main] died > java.lang.RuntimeException: java.io.NotSerializableException: > com.fasterxml.jackson.datatype.hibernate5.HibernateSerializers > at backtype.storm.utils.Utils.javaSerialize(Utils.java:91) > ~[storm-core-0.10.0.jar:0.10.0] > at > backtype.storm.topology.TopologyBuilder.createTopology(TopologyBuilder.java:107) > ~[storm-core-0.10.0.jar:0.10.0] > at <my package > name>.storm.topology.OrderCreatedTopology.main(OrderCreatedTopology.java:54) > ~[classes/:?] > Caused by: java.io.NotSerializableException: > com.fasterxml.jackson.datatype.hibernate5.HibernateSerializers > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) > ~[?:1.8.0_60] > at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1378) > ~[?:1.8.0_60] > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) > ~[?:1.8.0_60] > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) > ~[?:1.8.0_60] > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) > ~[?:1.8.0_60] > at > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) > ~[?:1.8.0_60] > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) > ~[?:1.8.0_60] > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) > ~[?:1.8.0_60] > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) > ~[?:1.8.0_60] > at > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) > ~[?:1.8.0_60] > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) > ~[?:1.8.0_60] > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) > ~[?:1.8.0_60] > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) > ~[?:1.8.0_60] > at > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) > ~[?:1.8.0_60] > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) > ~[?:1.8.0_60] > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) > ~[?:1.8.0_60] > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) > ~[?:1.8.0_60] > at > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) > ~[?:1.8.0_60] > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) > ~[?:1.8.0_60] > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) > ~[?:1.8.0_60] > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) > ~[?:1.8.0_60] > at > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) > ~[?:1.8.0_60] > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) > ~[?:1.8.0_60] > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) > ~[?:1.8.0_60] > at backtype.storm.utils.Utils.javaSerialize(Utils.java:87) > ~[storm-core-0.10.0.jar:0.10.0] > ----- > SUBMITTING to Cluster via StormSubmitter.submitTopology() > ----- > ... > 658 [main] INFO b.s.u.Utils - Using defaults.yaml from resources > 3922 [main] INFO b.s.u.Utils - Using storm.yaml from resources > Exception in thread "main" java.lang.RuntimeException: > java.io.NotSerializableException: > com.fasterxml.jackson.datatype.hibernate5.HibernateSerializers > at backtype.storm.utils.Utils.javaSerialize(Utils.java:91) > at > backtype.storm.topology.TopologyBuilder.createTopology(TopologyBuilder.java:107) > at <my package > name>.storm.topology.OrderCreatedTopology.main(OrderCreatedTopology.java:47) > Caused by: java.io.NotSerializableException: > com.fasterxml.jackson.datatype.hibernate5.HibernateSerializers > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) > at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1378) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) > at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) > at > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) > at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) > at > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) > at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) > at > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) > at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) > at > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) > at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) > at > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) > at backtype.storm.utils.Utils.javaSerialize(Utils.java:87) > ----- > > — > > > Thanks > IPVP > >
