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


Reply via email to