Dominik, Thanks for your answer.
The only thing I am doing is ,inside the bolt Execute() method , calling OrderDAO.findbyID() that uses Hibernate to retrieve the Order from MySql Table. The Topology sets de KafkaSpout and the Bolt and that is all. When you say “...suppose you are setting the MySqlDB attribute in the Bolt's constructor..” Does that mean Storm requires that something specific is done before being able to call MySql or can I just use my pre-existing DAO that calls Hibernate to get the MySql data ? Thanks -- IPVP From: Dominik V. <[email protected]><mailto:[email protected]> Reply: [email protected] <[email protected]>><mailto:[email protected]> Date: March 26, 2016 at 11:48:38 AM To: [email protected] <[email protected]>><mailto:[email protected]> Subject: Re: What can be causing NotSerializableException ? 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]<mailto:[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
