Re: Session error while loading an object
Greetings, I think that you might want to separate your functional concerns into different objects. One common pattern in multi-level architectures is to have a model object like Customer which would contain domain information for the Customer and a Service object like CustomerService which would be a singleton (many times injected using some IoC container). CustomerService would be used as a fascade to retrieve and persist Customer objects (or rather would delegate to a DAO layer to do the actual retrieval and persistence). The DataSource is usually injected into the DAO layer using your IoC container. Spring is a popular IoC container which is used to manage the middle tier (and web tier if you like). By separating the layers, you could persist Customer to the session and collaborate with the CustomService object and MessageResources when necessary in the web tier and avoid the NotSerializableExceptions you are running into with the DataSource and MessageSources. These are often interfaces whose implementations are provided by some framework, so it's unlikely you will be able to easily make them Serializable (they probably weren't meant to be anyways). Keep in mind, there are many ways to implement multilevel architecture. You may want to do some research on best practices. Spring and Rod Johnson are good resources. You could also reference Martin Fowler. Good luck. /robert - Original Message - From: "abhishek jain" To: "Struts Users Mailing List" Sent: Wednesday, July 14, 2010 5:15 AM Subject: Re: Session error while loading an object 2010/7/14 Paweł Wielgus Hi all, You get this error every time when tomcat tries to save someone's session and object of class com.cart.Customer is in it. Like Robert said, add Serializable to com.cart.Customer and the problem will go away. Best greetings, Paweł Wielgus. Hi, I have added the Serializable to com.cart.Customer, but now i am getting the following error, which i think is due to the reason that i am using reference of Datasource and Message Resource in the class which i believe is not serializable: IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.commons.dbcp.BasicDataSourcejava.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.commons.dbcp.BasicDataSource at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) . Pl. advice thanks abhishek - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: Session error while loading an object
Just the same problem: BasicDataSource is not serializable. Ernesto On Wed, Jul 14, 2010 at 11:15 AM, abhishek jain wrote: > 2010/7/14 Paweł Wielgus > >> Hi all, >> You get this error every time when tomcat tries to save someone's >> session and object of class com.cart.Customer is in it. >> Like Robert said, add Serializable to com.cart.Customer and the >> problem will go away. >> >> Best greetings, >> Paweł Wielgus. >> > > Hi, > I have added the Serializable to com.cart.Customer, but now i am getting the > following error, which i think is due to the reason that i am using > reference of Datasource and Message Resource in the class which i believe is > not serializable: > > IOException while loading persisted sessions: java.io.WriteAbortedException: > writing aborted; java.io.NotSerializableException: > org.apache.commons.dbcp.BasicDataSourcejava.io.WriteAbortedException: > writing aborted; java.io.NotSerializableException: > org.apache.commons.dbcp.BasicDataSource > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333) > at > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) > at > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > > > . > > Pl. advice > > thanks > abhishek > - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: Session error while loading an object
2010/7/14 Paweł Wielgus > Hi all, > You get this error every time when tomcat tries to save someone's > session and object of class com.cart.Customer is in it. > Like Robert said, add Serializable to com.cart.Customer and the > problem will go away. > > Best greetings, > Paweł Wielgus. > Hi, I have added the Serializable to com.cart.Customer, but now i am getting the following error, which i think is due to the reason that i am using reference of Datasource and Message Resource in the class which i believe is not serializable: IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.commons.dbcp.BasicDataSourcejava.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.commons.dbcp.BasicDataSource at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) . Pl. advice thanks abhishek
Re: Session error while loading an object
Hi all, You get this error every time when tomcat tries to save someone's session and object of class com.cart.Customer is in it. Like Robert said, add Serializable to com.cart.Customer and the problem will go away. Best greetings, Paweł Wielgus. 2010/7/13 abhishek jain : > Hi, > thanks for the comments, i will check but i get this error only at times, > and not always. > Can this still be the cause of the problem. > thanks > abhishek > > On Tue, Jul 13, 2010 at 6:39 PM, Robert Taylor wrote: > >> Greetings, >> >> Does the Customer object implement Serializable interface? >> If not, try modifying Customer to implement Serializable and see if the >> error still persists. >> >> /robert >> - Original Message - From: "abhishek jain" < >> abhishek.netj...@gmail.com> >> To: "Struts Users Mailing List" >> Sent: Tuesday, July 13, 2010 4:33 AM >> Subject: Session error while loading an object >> >> >> >> Hi friends, >>> I am using tomcat 5.5 , struts 1.x and i encounter the following error: >>> I actually store the object in session and retrieve that(for a shopping >>> cart >>> application), pl. advice what i can do to remove this error: >>> >>> Exception loading sessions from persistent >>> storagejava.io.WriteAbortedException: writing aborted; >>> java.io.NotSerializableException: com.cart.Customer >>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333) >>> at >>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) >>> at >>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) >>> at >>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) >>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) >>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) >>> at >>> >>> org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1416) >>> at >>> >>> org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:940) >>> at >>> >>> org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:394) >>> at >>> org.apache.catalina.session.StandardManager.load(StandardManager.java:321) >>> at >>> >>> org.apache.catalina.session.StandardManager.start(StandardManager.java:637) >>> at >>> org.apache.catalina.core.StandardContext.start(StandardContext.java:4202) >>> at >>> org.apache.catalina.core.StandardContext.reload(StandardContext.java:3056) >>> at >>> >>> org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:432) >>> at >>> >>> org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1278) >>> at >>> >>> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570) >>> at >>> >>> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579) >>> at >>> >>> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579) >>> at >>> >>> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559) >>> at java.lang.Thread.run(Thread.java:619) >>> Caused by: java.io.NotSerializableException: com.cart.Customer >>> at >>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156) >>> at >>> >>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509) >>> at >>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474) >>> at >>> >>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392) >>> at >>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150) >>> at >>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) >>> at >>> >>> org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1492) >>> at >>> >>> org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:957) >>> at >>> >>> org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:517) >>> at >>> >>> org.apache.catalina.session.StandardManager.unload(StandardManager.java:463) >>> at >>> org.apache.catalina.session.StandardManager.stop(StandardManager.java:667) >>> at >>> org.apache.catalina.core.StandardContext.stop(StandardContext.java:4362) >>> at >>> org.apache.catalina.core.StandardContext.reload(StandardContext.java:3050) >>> ... 7 more >>> >>> >>> >>> > - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: Session error while loading an object
Hi, thanks for the comments, i will check but i get this error only at times, and not always. Can this still be the cause of the problem. thanks abhishek On Tue, Jul 13, 2010 at 6:39 PM, Robert Taylor wrote: > Greetings, > > Does the Customer object implement Serializable interface? > If not, try modifying Customer to implement Serializable and see if the > error still persists. > > /robert > - Original Message - From: "abhishek jain" < > abhishek.netj...@gmail.com> > To: "Struts Users Mailing List" > Sent: Tuesday, July 13, 2010 4:33 AM > Subject: Session error while loading an object > > > > Hi friends, >> I am using tomcat 5.5 , struts 1.x and i encounter the following error: >> I actually store the object in session and retrieve that(for a shopping >> cart >> application), pl. advice what i can do to remove this error: >> >> Exception loading sessions from persistent >> storagejava.io.WriteAbortedException: writing aborted; >> java.io.NotSerializableException: com.cart.Customer >> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333) >> at >> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) >> at >> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) >> at >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) >> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) >> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) >> at >> >> org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1416) >> at >> >> org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:940) >> at >> >> org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:394) >> at >> org.apache.catalina.session.StandardManager.load(StandardManager.java:321) >> at >> >> org.apache.catalina.session.StandardManager.start(StandardManager.java:637) >> at >> org.apache.catalina.core.StandardContext.start(StandardContext.java:4202) >> at >> org.apache.catalina.core.StandardContext.reload(StandardContext.java:3056) >> at >> >> org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:432) >> at >> >> org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1278) >> at >> >> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570) >> at >> >> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579) >> at >> >> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579) >> at >> >> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559) >> at java.lang.Thread.run(Thread.java:619) >> Caused by: java.io.NotSerializableException: com.cart.Customer >> at >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156) >> at >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509) >> at >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474) >> at >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392) >> at >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150) >> at >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) >> at >> >> org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1492) >> at >> >> org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:957) >> at >> >> org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:517) >> at >> >> org.apache.catalina.session.StandardManager.unload(StandardManager.java:463) >> at >> org.apache.catalina.session.StandardManager.stop(StandardManager.java:667) >> at >> org.apache.catalina.core.StandardContext.stop(StandardContext.java:4362) >> at >> org.apache.catalina.core.StandardContext.reload(StandardContext.java:3050) >> ... 7 more >> >> >> >>
Re: Session error while loading an object
Greetings, Does the Customer object implement Serializable interface? If not, try modifying Customer to implement Serializable and see if the error still persists. /robert - Original Message - From: "abhishek jain" To: "Struts Users Mailing List" Sent: Tuesday, July 13, 2010 4:33 AM Subject: Session error while loading an object Hi friends, I am using tomcat 5.5 , struts 1.x and i encounter the following error: I actually store the object in session and retrieve that(for a shopping cart application), pl. advice what i can do to remove this error: Exception loading sessions from persistent storagejava.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: com.cart.Customer at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1416) at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:940) at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:394) at org.apache.catalina.session.StandardManager.load(StandardManager.java:321) at org.apache.catalina.session.StandardManager.start(StandardManager.java:637) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4202) at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3056) at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:432) at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1278) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559) at java.lang.Thread.run(Thread.java:619) Caused by: java.io.NotSerializableException: com.cart.Customer at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1492) at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:957) at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:517) at org.apache.catalina.session.StandardManager.unload(StandardManager.java:463) at org.apache.catalina.session.StandardManager.stop(StandardManager.java:667) at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4362) at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3050) ... 7 more -- Thanks and kind Regards, Abhishek jain - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Session error while loading an object
Hi friends, I am using tomcat 5.5 , struts 1.x and i encounter the following error: I actually store the object in session and retrieve that(for a shopping cart application), pl. advice what i can do to remove this error: Exception loading sessions from persistent storagejava.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: com.cart.Customer at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1416) at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:940) at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:394) at org.apache.catalina.session.StandardManager.load(StandardManager.java:321) at org.apache.catalina.session.StandardManager.start(StandardManager.java:637) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4202) at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3056) at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:432) at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1278) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559) at java.lang.Thread.run(Thread.java:619) Caused by: java.io.NotSerializableException: com.cart.Customer at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1492) at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:957) at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:517) at org.apache.catalina.session.StandardManager.unload(StandardManager.java:463) at org.apache.catalina.session.StandardManager.stop(StandardManager.java:667) at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4362) at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3050) ... 7 more -- Thanks and kind Regards, Abhishek jain