Java.io.NotSerializableException WHY??? What did I do??? ;-)
Hi Guys,
I am getting java.io.NotSerializableException when running a query and
passing in PersistenceCapable object via executeWithMap or
executeWithArray. When I run the same query and pass the object in
directly into execute()(as a single parameter), it works just fine... ???
I am using Kodo version 2.4.2. To pass the parameters in I have tried
HashMap as well as normal array (ArrayList.toArray()) and always got the
problem.
The code and full stack is bellow. Please note the test for
PersistenceCapable. Part of the code is commented out, but it still throws
the exception as it is.
Any help would be greatly appretiated!!!
Petr
Code:
String ql = "folderItems.contains(vfolderItem) && vfolderItem.parentFolder
== parFolder";
String params = "Folder parFolder";
String variables = "FolderItem vfolderItem;";
HashMap parValues = new HashMap();
System.out.println("Folder PC" + (folder instanceof PersistenceCapable));
parValues.put("parFolder", folder);
if (createdStart != null) {
ql = ql + " && createdDate >= padStartDate";
params = params + ", java.util.Date padStartDate";
parValues.put("padStartDate", createdStart);
if (createdStop != null) {
ql = ql + " && createdDate <= padStopDate";
params = params + ", java.util.Date padStopDate";
parValues.put("padStopDate", createdStop);
if (receivedBy != null ) {
ql = ql + " && recipients.contains(vRecipient) &&
vRecipient.recipientType == parRecipient";
params = params + ", CodeValue parRecipient";
variables = variables + "; Recipient vRecipient;";
parValues.put("parRecipient", receivedBy);
if (sentBy != null) {
ql = ql + " && recipients.contains(vSender) && vSender.recipientType ==
parSender";
params = params + ", CodeValue parSender";
variables = variables + "; Recipient vSender;";
parValues.put("parSender", sentBy);
Collection col;
Query q = ctx.getPersist().newQuery(ext, ql);
q.declareVariables(variables);
q.declareParameters(params);
q.declareImports("import com.mallesons.servicenet.aa.folder.*;");
q.setOrdering("createdDate ascending");
q.compile();
col = (Collection) q.executeWithMap(parValues);
//col = (Collection) q.execute(folder);
Stack:
javax.jdo.JDOFatalUserException:
com.mallesons.servicenet.aa.folder.Folder: java.util.HashMap
NestedThrowables:
java.io.NotSerializableException: com.mallesons.servicenet.aa.folder.Folder
at
com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.serialize(AbstractDictionary.java:684)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.blobToSQL(AbstractDictionary.java:384)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.blobToPreparedParameter(AbstractDictionary.java:1067)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.SQLServerDictionary.blobToPreparedParameter(SQLServerDictionary.java:139)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.toPreparedParameter(AbstractDictionary.java:808)
at
com.solarmetric.kodo.impl.jdbc.sql.SQLValue.applyParameter(SQLValue.java:129)
at
com.solarmetric.kodo.impl.jdbc.sql.SQLBuffer.setParameters(SQLBuffer.java:239)
at
com.solarmetric.kodo.impl.jdbc.sql.SQLBuffer.setParameters(SQLBuffer.java:222)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.prepareStatementInternal(SQLExecutionManagerImpl.java:824)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executePreparedQueryInternal(SQLExecutionManagerImpl.java:761)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQueryInternal(SQLExecutionManagerImpl.java:691)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQuery(SQLExecutionManagerImpl.java:372)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQuery(SQLExecutionManagerImpl.java:356)
at
com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.selectPrimaryMappings(ClassMapping.java:1221)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCStoreManager.java:707)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCQuery.executeQuery(JDBCQuery.java:93)
at com.solarmetric.kodo.query.QueryImpl.executeWithMap(QueryImpl.java:792)
at
com.solarmetric.kodo.query.QueryImpl.executeWithArray(QueryImpl.java:668)
at com.solarmetric.kodo.query.QueryImpl.execute(QueryImpl.java:609)
at
com.mallesons.servicenet.ta.shared.BOQuery.executeWithMap(BOQuery.java:159)
at
com.mallesons.servicenet.aa.folder.SearchEmailItemService.searchDirect(SearchEmailItemService.java:105)
at
com.mallesons.servicenet.aa.folder.SearchEmailItemService.searchIn(SearchEmailItemService.java:45)
at
com.mallesons.servicenet.aa.folder.test.SearchItemServiceTest.testCascadeFaxNoTime(SearchItemServiceTest.java:217)
at java.lang.reflect.Method.invoke(Native Method)
at junit.framework.TestCase.runTest(TestCase.java:166)
at junit.framework.TestCase.runBare(TestCase.java:140)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:131)
at junit.framework.TestSuite.runTest(TestSuite.java:173)
at junit.framework.TestSuite.run(TestSuite.java:168)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:329)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:218)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:151)
NestedThrowablesStackTrace:
java.io.NotSerializableException: com.mallesons.servicenet.aa.folder.Folder
at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1205)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:383)
at java.util.HashMap.writeObject(HashMap.java:825)
at java.lang.reflect.Method.invoke(Native Method)
at
java.io.ObjectOutputStream.invokeObjectWriter(ObjectOutputStream.java:1925)
at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1267)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:383)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.serialize(AbstractDictionary.java:680)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.blobToSQL(AbstractDictionary.java:384)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.blobToPreparedParameter(AbstractDictionary.java:1067)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.SQLServerDictionary.blobToPreparedParameter(SQLServerDictionary.java:139)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.toPreparedParameter(AbstractDictionary.java:808)
at
com.solarmetric.kodo.impl.jdbc.sql.SQLValue.applyParameter(SQLValue.java:129)
at
com.solarmetric.kodo.impl.jdbc.sql.SQLBuffer.setParameters(SQLBuffer.java:239)
at
com.solarmetric.kodo.impl.jdbc.sql.SQLBuffer.setParameters(SQLBuffer.java:222)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.prepareStatementInternal(SQLExecutionManagerImpl.java:824)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executePreparedQueryInternal(SQLExecutionManagerImpl.java:761)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQueryInternal(SQLExecutionManagerImpl.java:691)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQuery(SQLExecutionManagerImpl.java:372)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQuery(SQLExecutionManagerImpl.java:356)
at
com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.selectPrimaryMappings(ClassMapping.java:1221)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCStoreManager.java:707)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCQuery.executeQuery(JDBCQuery.java:93)
at com.solarmetric.kodo.query.QueryImpl.executeWithMap(QueryImpl.java:792)
at
com.solarmetric.kodo.query.QueryImpl.executeWithArray(QueryImpl.java:668)
at com.solarmetric.kodo.query.QueryImpl.execute(QueryImpl.java:609)
at
com.mallesons.servicenet.ta.shared.BOQuery.executeWithMap(BOQuery.java:159)
at
com.mallesons.servicenet.aa.folder.SearchEmailItemService.searchDirect(SearchEmailItemService.java:105)
at
com.mallesons.servicenet.aa.folder.SearchEmailItemService.searchIn(SearchEmailItemService.java:45)
at
com.mallesons.servicenet.aa.folder.test.SearchItemServiceTest.testCascadeFaxNoTime(SearchItemServiceTest.java:217)
at java.lang.reflect.Method.invoke(Native Method)
at junit.framework.TestCase.runTest(TestCase.java:166)
at junit.framework.TestCase.runBare(TestCase.java:140)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:131)
at junit.framework.TestSuite.runTest(TestSuite.java:173)
at junit.framework.TestSuite.run(TestSuite.java:168)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:329)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:218)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:151)
OK, mystery solved. I was using a our internal wrapper around Query and
who ever wrote it, mapped executeWithArray and executeWithMap to simple
Query.execute.
Damn! :-(
Petr
Petr Bulanek wrote:
Hi Guys,
I am getting java.io.NotSerializableException when running a query and
passing in PersistenceCapable object via executeWithMap or
executeWithArray. When I run the same query and pass the object in
directly into execute()(as a single parameter), it works just fine... ???
I am using Kodo version 2.4.2. To pass the parameters in I have tried
HashMap as well as normal array (ArrayList.toArray()) and always got the
problem.
The code and full stack is bellow. Please note the test for
PersistenceCapable. Part of the code is commented out, but it still throws
the exception as it is.
Any help would be greatly appretiated!!!
Petr
Code:
String ql = "folderItems.contains(vfolderItem) && vfolderItem.parentFolder
== parFolder";
String params = "Folder parFolder";
String variables = "FolderItem vfolderItem;";
HashMap parValues = new HashMap();
System.out.println("Folder PC" + (folder instanceof PersistenceCapable));
parValues.put("parFolder", folder);
if (createdStart != null) {
ql = ql + " && createdDate >= padStartDate";
params = params + ", java.util.Date padStartDate";
parValues.put("padStartDate", createdStart);
if (createdStop != null) {
ql = ql + " && createdDate <= padStopDate";
params = params + ", java.util.Date padStopDate";
parValues.put("padStopDate", createdStop);
if (receivedBy != null ) {
ql = ql + " && recipients.contains(vRecipient) &&
vRecipient.recipientType == parRecipient";
params = params + ", CodeValue parRecipient";
variables = variables + "; Recipient vRecipient;";
parValues.put("parRecipient", receivedBy);
if (sentBy != null) {
ql = ql + " && recipients.contains(vSender) && vSender.recipientType ==
parSender";
params = params + ", CodeValue parSender";
variables = variables + "; Recipient vSender;";
parValues.put("parSender", sentBy);
Collection col;
Query q = ctx.getPersist().newQuery(ext, ql);
q.declareVariables(variables);
q.declareParameters(params);
q.declareImports("import com.mallesons.servicenet.aa.folder.*;");
q.setOrdering("createdDate ascending");
q.compile();
col = (Collection) q.executeWithMap(parValues);
//col = (Collection) q.execute(folder);
Stack:
javax.jdo.JDOFatalUserException:
com.mallesons.servicenet.aa.folder.Folder: java.util.HashMap
NestedThrowables:
java.io.NotSerializableException: com.mallesons.servicenet.aa.folder.Folder
at
com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.serialize(AbstractDictionary.java:684)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.blobToSQL(AbstractDictionary.java:384)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.blobToPreparedParameter(AbstractDictionary.java:1067)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.SQLServerDictionary.blobToPreparedParameter(SQLServerDictionary.java:139)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.toPreparedParameter(AbstractDictionary.java:808)
at
com.solarmetric.kodo.impl.jdbc.sql.SQLValue.applyParameter(SQLValue.java:129)
at
com.solarmetric.kodo.impl.jdbc.sql.SQLBuffer.setParameters(SQLBuffer.java:239)
at
com.solarmetric.kodo.impl.jdbc.sql.SQLBuffer.setParameters(SQLBuffer.java:222)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.prepareStatementInternal(SQLExecutionManagerImpl.java:824)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executePreparedQueryInternal(SQLExecutionManagerImpl.java:761)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQueryInternal(SQLExecutionManagerImpl.java:691)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQuery(SQLExecutionManagerImpl.java:372)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQuery(SQLExecutionManagerImpl.java:356)
at
com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.selectPrimaryMappings(ClassMapping.java:1221)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCStoreManager.java:707)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCQuery.executeQuery(JDBCQuery.java:93)
at com.solarmetric.kodo.query.QueryImpl.executeWithMap(QueryImpl.java:792)
at
com.solarmetric.kodo.query.QueryImpl.executeWithArray(QueryImpl.java:668)
at com.solarmetric.kodo.query.QueryImpl.execute(QueryImpl.java:609)
at
com.mallesons.servicenet.ta.shared.BOQuery.executeWithMap(BOQuery.java:159)
at
com.mallesons.servicenet.aa.folder.SearchEmailItemService.searchDirect(SearchEmailItemService.java:105)
at
com.mallesons.servicenet.aa.folder.SearchEmailItemService.searchIn(SearchEmailItemService.java:45)
at
com.mallesons.servicenet.aa.folder.test.SearchItemServiceTest.testCascadeFaxNoTime(SearchItemServiceTest.java:217)
at java.lang.reflect.Method.invoke(Native Method)
at junit.framework.TestCase.runTest(TestCase.java:166)
at junit.framework.TestCase.runBare(TestCase.java:140)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:131)
at junit.framework.TestSuite.runTest(TestSuite.java:173)
at junit.framework.TestSuite.run(TestSuite.java:168)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:329)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:218)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:151)
NestedThrowablesStackTrace:
java.io.NotSerializableException: com.mallesons.servicenet.aa.folder.Folder
at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1205)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:383)
at java.util.HashMap.writeObject(HashMap.java:825)
at java.lang.reflect.Method.invoke(Native Method)
at
java.io.ObjectOutputStream.invokeObjectWriter(ObjectOutputStream.java:1925)
at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1267)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:383)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.serialize(AbstractDictionary.java:680)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.blobToSQL(AbstractDictionary.java:384)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.blobToPreparedParameter(AbstractDictionary.java:1067)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.SQLServerDictionary.blobToPreparedParameter(SQLServerDictionary.java:139)
at
com.solarmetric.kodo.impl.jdbc.schema.dict.AbstractDictionary.toPreparedParameter(AbstractDictionary.java:808)
at
com.solarmetric.kodo.impl.jdbc.sql.SQLValue.applyParameter(SQLValue.java:129)
at
com.solarmetric.kodo.impl.jdbc.sql.SQLBuffer.setParameters(SQLBuffer.java:239)
at
com.solarmetric.kodo.impl.jdbc.sql.SQLBuffer.setParameters(SQLBuffer.java:222)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.prepareStatementInternal(SQLExecutionManagerImpl.java:824)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executePreparedQueryInternal(SQLExecutionManagerImpl.java:761)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQueryInternal(SQLExecutionManagerImpl.java:691)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQuery(SQLExecutionManagerImpl.java:372)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeQuery(SQLExecutionManagerImpl.java:356)
at
com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.selectPrimaryMappings(ClassMapping.java:1221)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCStoreManager.java:707)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCQuery.executeQuery(JDBCQuery.java:93)
at com.solarmetric.kodo.query.QueryImpl.executeWithMap(QueryImpl.java:792)
at
com.solarmetric.kodo.query.QueryImpl.executeWithArray(QueryImpl.java:668)
at com.solarmetric.kodo.query.QueryImpl.execute(QueryImpl.java:609)
at
com.mallesons.servicenet.ta.shared.BOQuery.executeWithMap(BOQuery.java:159)
at
com.mallesons.servicenet.aa.folder.SearchEmailItemService.searchDirect(SearchEmailItemService.java:105)
at
com.mallesons.servicenet.aa.folder.SearchEmailItemService.searchIn(SearchEmailItemService.java:45)
at
com.mallesons.servicenet.aa.folder.test.SearchItemServiceTest.testCascadeFaxNoTime(SearchItemServiceTest.java:217)
at java.lang.reflect.Method.invoke(Native Method)
at junit.framework.TestCase.runTest(TestCase.java:166)
at junit.framework.TestCase.runBare(TestCase.java:140)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:131)
at junit.framework.TestSuite.runTest(TestSuite.java:173)
at junit.framework.TestSuite.run(TestSuite.java:168)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:329)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:218)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:151)
Similar Messages
-
Been out of Java for 3 months, what did I miss?
Hey I stopped doing Java for a couple of months, and I plan to get back in it, im gonna buy a book soon, what do you guys think I should focus on when Im looking? Has anything big come up in Java Game design recently?
Also, I plan to start doing some multiplayer games now
as opposed to my old create an AI and the human goes
against the computer style, what should I know about
doing multiplayer stuff, and where can I find info?I hate to give a flippant answer, but the best things to do are...
a) search/browse these very forums (and read the posts); just because people haven't responded to a topic doesn't mean there's nothing useful in them. In the past two, three weeks, we've discussed topics ranging from synchronizing maps to message passing to security, that is, preventing people from hacking the clients to cheat.
b) don't worry about what you have to know and instead, think of some ideas for games that YOU would enjoy playing. Once you have a rough sketch in place for what you'd like do to, then, and this is crucial, think of ways you might be able to exploit it.
For example, if you create a multiplayer RPG, one of the obvious ways to exploit it is to allow the players to create their own characters, roll their own dice and so on. There are dozens of solutions that may work, but only you can decide which ones best fit your ideas.
When you have a specific question like "I need to do this and that and these create latency. How can I prevent that?" then we are here and happy to help. :) -
Safari resets why What did i do i can't remember?
I may have done something to safari to try and speed it up since it kept stalling and pausing nothing drastic but can't remember what.
Every time i launch Safari and come to discussions for instance i have to re-enter my mac address and password the Address doesn't save.
My bookmarks are there and my history is still there too.
Help is greatly appreciated.I suddenly lost all my cookies, which means I must sign in to every site I used to just get in without all that. Now, if I can remember any of them!
Safari has been screwing up, crashing constantly, and now this, ever since the last update.....
Quite aggravating..... -
I have an iphone 5s and i just got the 7.0.4 update. Now i don't have the option to have a fingerprint scanner. Has anyone had this same problem? If so, why is that and what did you do about it?
I have an iphone 5s and i just got the 7.0.4 update. Now i don't have the option to have a fingerprint scanner. Has anyone had this same problem? If so, why is that and what did you do about it?
-
I had a live chat with an adobe person to help me to download again my Creative Suite 2 Premium, which I did, and now my serial number seems to not be any good. Why, what do I do now?
CS2 (and earlier) Activation Server replacement software
http://helpx.adobe.com/x-productkb/policy-pricing/creative-suite-2-activation-end-life.htm l
When you install the special version of PPro2 on a Win7 or Win8 computer, you MAY need to right click the program icon and select WinXP compatibility from the option popup -
I have a yahoo_firefox icon on my desk top. When I click on it to go onto the internet it reinstalls firefox every single time first. What did i do wrong or what am I doing wrong? how can I fix this problem?
In my opinion this icon what you mentioned is related to Firefox installer file.
-
I have a class Box which has two member Size and Location, both Serializable.
Then I have several classes (e.g. Node) which extend Box.
None of all the classes (Box, Size, Location and all extensions of Box e.g. Node) use BasicStroke. I commented out the import of BasicStroke in all classes that are Serializable, so it cannot be used anywhere.
The problem is I use drag and drop, and when Box is also Serializable I get the following error when trying to drop:
java.io.NotSerializableException: java.awt.BasicStroke
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:391)
at java.util.Vector.writeObject(Vector.java:1018)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
at sun.awt.datatransfer.TransferableProxy.getTransferData(TransferableProxy.java:66)
at java.awt.dnd.DropTargetContext$TransferableProxy.getTransferData(DropTargetContext.java:359)
at kfotobook.kgui.KPageViewer.getFlavorData(KPageViewer.java:767)
at kfotobook.kgui.KPageViewer.getFlavorData(KPageViewer.java:750)
at kfotobook.kgui.KPageViewer.drop(KPageViewer.java:791)
at java.awt.dnd.DropTarget.drop(DropTarget.java:430)
at sun.awt.dnd.SunDropTargetContextPeer.processDropMessage(SunDropTargetContextPeer.java:500)
at sun.awt.dnd.SunDropTargetContextPeer.access$800(SunDropTargetContextPeer.java:53)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchDropEvent(SunDropTargetContextPeer.java:812)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(SunDropTargetContextPeer.java:736)
at sun.awt.dnd.SunDropTargetEvent.dispatch(SunDropTargetEvent.java:29)
at java.awt.Component.dispatchEventImpl(Component.java:3826)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processDropTargetEvent(Container.java:3963)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3817)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
I do not know how to better describe the error, because I have no clue why BasicStrokes is tried to serialize at all. I am really confused, but perhaps somebody has seen something similar and can give a hint.
Message was edited by:
kudiThanks for the hint. Actually I must say once more that I was too tired that I have overseen a memeber field because of bad code layout :-( I better went to sleep...
But there is still something confusing, that is also the reason why I did not search for the fields in the right class.
So I have a class Box and a class Node which extends Box. Node is the one which contains the evil AWT references. When I declare only Node as Serializable, it works. But when I also declare the super class Box as Serializable the error occured.
In my opinion a Serializable sub class with a super class which does not implement Serializable does not make sence, but as an accident I did it. What is the semantic in such a case? (At least I know it could not serialize the sub class as expected...)
Message was edited by:
kudi -
Hi,
We are currently in the process of moving from Weblogic 6.1 SP5 and
Toplink 3.6.3 to Weblogic 8.1 SP2 and Toplink 9.0.4 and during some test
I have seen a "scaring" stack trace. It seems that, for some reason, a
thing that "uses to work" failed with a very strange error. I tried to
reproduce it but without any success. Besides asking if anybody knows
what could have caused this error I would like to know what the "not
serializable" object is. Is it the EntityEJBContext?
<12-09-2004 4:40' GMT> <Error> <app> <000000> <[thread 5
weblogic.kernel.Default]:Exception:
javax.transaction.TransactionRolledbackException at getXML
javax.transaction.TransactionRolledbackException: EJB Exception: :
java.io.NotSerializableException:
weblogic.ejb20.internal.EntityEJBContextImpl
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at
weblogic.rmi.internal.CBVOutputStream.writeObject(CBVOutputStream.java:78)
at weblogic.rmi.internal.ServerRequest.copy(ServerRequest.java:218)
at
weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:158)
at
weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:138)
at
app.data.production.ProductionBean_3toa0w_EOImpl_811_WLStub.EJB2DOM(Unknown
Source)
In case it could share some light in the case I will explain a bit what
does the process intended to do:
The general idea is that, given some data (managed with Toplink's 9.0.4
CMP) we take a XML "snapshot" of them (via a custom OBJ2XML class that
has been working for ages without any problem) and "publish" it via JMS
in order to perform asyncronous actions with it. I'm sure this is a,
more than usual, scenario for a lot of folks.
As it seems looking at the stack at some point during some internal
object serialization it fails and rollbacks all the process. The object
being serialized by our side only contains four attributes: a
java.math.BigDecimal for it's primary key, a java.util.Date for
timestamp locking and two simple java.lang.String's
Although I'm pretty sure the problem should not be with the entity bean
itself but with an internal Weblogic op (is it trying to serialize the
EntityBeanContext as stated after the java.io.NotSerializableException
message?
Any help with this would be greatly appreciated as I have no clue how
this happened and I'm also unable to reproduce it (I'm also sure if I
managed to trigger it testing the application alone it will rise many
more times that could be admited if we move to production).
I would like to point also that currently until we have some more time
to fix it we are using "remote" entity bean, I mean even if we are alway
s calling them within the container they are not deployed with "local"
interfaces yet (although AFAIK Weblogic should avoid RMI calls on them
being co-located with the session beans).
Regards.
Ignacio.
P.S. here is the full stack dump
<12-09-2004 4:40' GMT> <Error> <app> <000000> <[thread 5
weblogic.kernel.Default]:Exception:
javax.transaction.TransactionRolledbackException at getXML
javax.transaction.TransactionRolledbackException: EJB Exception: :
java.io.NotSerializableException:
weblogic.ejb20.internal.EntityEJBContextImpl
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at
weblogic.rmi.internal.CBVOutputStream.writeObject(CBVOutputStream.java:78)
at weblogic.rmi.internal.ServerRequest.copy(ServerRequest.java:218)
at
weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:158)
at
weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:138)
at
app.data.production.ProductionBean_3toa0w_EOImpl_811_WLStub.EJB2DOM(Unknown
Source)
at app.data.general.GeneralBean.EJB2DOM(GeneralBean.java:1180)
at
app.data.module.ModuleBean_1v2h9c_EOImpl.EJB2DOM(ModuleBean_1v2h9c_EOImpl.java:3954)
at app.data.general.GeneralBean.EJB2DOM(GeneralBean.java:1180)
at app.data.general.GeneralBean.getXML(GeneralBean.java:1024)
at app.data.general.GeneralBean.getXML(GeneralBean.java:1002)
at
app.data.module.ModuleBean_nw294k_EOImpl.getXML(ModuleBean_nw294k_EOImpl.java:3138)
at app.biz.common.Publisher.performPublication(Publisher.java:1644)
at app.biz.common.Publisher.launchPublisher(Publisher.java:1580)
at app.biz.module.ModuleDAO.update(ModuleDAO.java)
at
app.biz.module.ModuleDAO_jcgreo_EOImpl.update(ModuleDAO_jcgreo_EOImpl.java:100)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at app.core.util.Proxy.execute(Proxy.java:583)
at app.core.servlet.BaseServlet.execute(BaseServlet.java:440)
at
app.user.servlet.common.BaseServlet.accessSessionBean(BaseServlet.java:279)
at
app.user.servlet.common.BaseServlet.buildResponse(BaseServlet.java:132)
at app.core.servlet.BaseServlet.doGet(BaseServlet.java:116)
at app.core.servlet.BaseServlet.doPost(BaseServlet.java:154)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6310)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
>Ignacio,
6.1 used pass-by-reference by default, so parameters to beans were
passed by reference.
It's very likely that you are getting this error because in 8.1 this default
was turned off. This causes serialization of parameters by default and
that's why your code that worked started failing - you just did not know
that you were passing non-serializable objects around.
To fix this you could either turn on the pass-by-reference explicitly and/or
find out where your code is passing non-serializable objects. This is a useful
exercise anyways.
Hope this helps.
Regards,
Slava Imeshev
"Ignacio G. Dupont" <[email protected]> wrote in message news:41b8c93f@mail...
Hi,
We are currently in the process of moving from Weblogic 6.1 SP5 and
Toplink 3.6.3 to Weblogic 8.1 SP2 and Toplink 9.0.4 and during some test
I have seen a "scaring" stack trace. It seems that, for some reason, a
thing that "uses to work" failed with a very strange error. I tried to
reproduce it but without any success. Besides asking if anybody knows
what could have caused this error I would like to know what the "not
serializable" object is. Is it the EntityEJBContext?
<12-09-2004 4:40' GMT> <Error> <app> <000000> <[thread 5
weblogic.kernel.Default]:Exception:
javax.transaction.TransactionRolledbackException at getXML
javax.transaction.TransactionRolledbackException: EJB Exception: :
java.io.NotSerializableException:
weblogic.ejb20.internal.EntityEJBContextImpl
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at
weblogic.rmi.internal.CBVOutputStream.writeObject(CBVOutputStream.java:78)
at weblogic.rmi.internal.ServerRequest.copy(ServerRequest.java:218)
at
weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:158)
at
weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:138)
at
app.data.production.ProductionBean_3toa0w_EOImpl_811_WLStub.EJB2DOM(Unknown
Source)
In case it could share some light in the case I will explain a bit what
does the process intended to do:
The general idea is that, given some data (managed with Toplink's 9.0.4
CMP) we take a XML "snapshot" of them (via a custom OBJ2XML class that
has been working for ages without any problem) and "publish" it via JMS
in order to perform asyncronous actions with it. I'm sure this is a,
more than usual, scenario for a lot of folks.
As it seems looking at the stack at some point during some internal
object serialization it fails and rollbacks all the process. The object
being serialized by our side only contains four attributes: a
java.math.BigDecimal for it's primary key, a java.util.Date for
timestamp locking and two simple java.lang.String's
Although I'm pretty sure the problem should not be with the entity bean
itself but with an internal Weblogic op (is it trying to serialize the
EntityBeanContext as stated after the java.io.NotSerializableException
message?
Any help with this would be greatly appreciated as I have no clue how
this happened and I'm also unable to reproduce it (I'm also sure if I
managed to trigger it testing the application alone it will rise many
more times that could be admited if we move to production).
I would like to point also that currently until we have some more time
to fix it we are using "remote" entity bean, I mean even if we are alway
s calling them within the container they are not deployed with "local"
interfaces yet (although AFAIK Weblogic should avoid RMI calls on them
being co-located with the session beans).
Regards.
Ignacio.
P.S. here is the full stack dump
<12-09-2004 4:40' GMT> <Error> <app> <000000> <[thread 5
weblogic.kernel.Default]:Exception:
javax.transaction.TransactionRolledbackException at getXML
javax.transaction.TransactionRolledbackException: EJB Exception: :
java.io.NotSerializableException:
weblogic.ejb20.internal.EntityEJBContextImpl
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at
weblogic.rmi.internal.CBVOutputStream.writeObject(CBVOutputStream.java:78)
at weblogic.rmi.internal.ServerRequest.copy(ServerRequest.java:218)
at
weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:158)
at
weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:138)
at
app.data.production.ProductionBean_3toa0w_EOImpl_811_WLStub.EJB2DOM(Unknown
Source)
at app.data.general.GeneralBean.EJB2DOM(GeneralBean.java:1180)
at
app.data.module.ModuleBean_1v2h9c_EOImpl.EJB2DOM(ModuleBean_1v2h9c_EOImpl.java:3954)
at app.data.general.GeneralBean.EJB2DOM(GeneralBean.java:1180)
at app.data.general.GeneralBean.getXML(GeneralBean.java:1024)
at app.data.general.GeneralBean.getXML(GeneralBean.java:1002)
at
app.data.module.ModuleBean_nw294k_EOImpl.getXML(ModuleBean_nw294k_EOImpl.java:3138)
at app.biz.common.Publisher.performPublication(Publisher.java:1644)
at app.biz.common.Publisher.launchPublisher(Publisher.java:1580)
at app.biz.module.ModuleDAO.update(ModuleDAO.java)
at
app.biz.module.ModuleDAO_jcgreo_EOImpl.update(ModuleDAO_jcgreo_EOImpl.java:100)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at app.core.util.Proxy.execute(Proxy.java:583)
at app.core.servlet.BaseServlet.execute(BaseServlet.java:440)
at
app.user.servlet.common.BaseServlet.accessSessionBean(BaseServlet.java:279)
at
app.user.servlet.common.BaseServlet.buildResponse(BaseServlet.java:132)
at app.core.servlet.BaseServlet.doGet(BaseServlet.java:116)
at app.core.servlet.BaseServlet.doPost(BaseServlet.java:154)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6310)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
> -
Java.io.NotSerializableException in Query
All,
I am encountering a strange java.io.NotSerializable error on certain
queries. I am using Kodo Std 2.2.6 (trial version) on RH7.1 with Postgres
7.1 (inside a Struts 1.1 servlet running inside Tomcat 4.1).
The error is the following: I am attempting to find "Resources" that have
associated "File"s, where those files have "FileRole" == a particular
FileRole object.
The objects (simplified) are:
public class Resource {
File file;
String driver;
String driverId;
public class File {
FileRole fileRole;
public class FileRole {
String name;
The query is:
public List findByDriver(String driver, String driverId, FileRole fileRole)
List li = null;
try {
String filter = "driver == driverString && driverId ==
driverIdString && file.fileRole == theFileRole";
Extent beanExtent =
JDOManager.getInstance().getPersistenceManager().getExtent(Resource.class,
false);
Query q =
JDOManager.getInstance().getPersistenceManager().newQuery(Resource.class,
beanExtent, filter);
q.declareImports("import lepton.core.file.File;" + "import
lepton.core.file.FileRole");
q.declareParameters("String driverString, String driverIdString,
FileRole theFileRole);
ArrayList queryArray = new ArrayList();
queryArray.add(driver);
queryArray.add(driverId);
queryArray.add(fileRole);
Collection results = (Collection) q.execute(queryArray);
li = new ArrayList(results);
} catch (Exception e) {
throw new LeptonException(e);
return li;
The error is:
javax.jdo.JDOException: lepton.core.file.FileRole
NestedThrowables:
java.io.NotSerializableException: lepton.core.file.FileRole
at
com.solarmetric.kodo.impl.jdbc.schema.dict.GenericDictionary.toSQL(GenericDi
ctionary.java:169)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCExpressionFactory$Constant.(JDBCE
xpressionFactory.java:465)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCExpressionFactory.getConstant(JDB
CExpressionFactory.java:229)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCExpressionFactory.getParameter(JD
BCExpressionFactory.java:249)
at com.solarmetric.kodo.query.FilterParser.eval(FilterParser.java:563)
at com.solarmetric.kodo.query.FilterParser.getValue(FilterParser.java:669)
at com.solarmetric.kodo.query.FilterParser.eval(FilterParser.java:582)
at
com.solarmetric.kodo.query.FilterParser.getExpression(FilterParser.java:678)
at com.solarmetric.kodo.query.FilterParser.eval(FilterParser.java:653)
at
com.solarmetric.kodo.query.FilterParser.getExpression(FilterParser.java:678)
at com.solarmetric.kodo.query.FilterParser.eval(FilterParser.java:653)
at
com.solarmetric.kodo.query.FilterParser.getExpression(FilterParser.java:678)
at com.solarmetric.kodo.query.FilterParser.eval(FilterParser.java:653)
at
com.solarmetric.kodo.query.FilterParser.getExpression(FilterParser.java:678)
at com.solarmetric.kodo.query.FilterParser.evaluate(FilterParser.java:530)
at com.solarmetric.kodo.query.QueryImpl.getExpression(QueryImpl.java:502)
at com.solarmetric.kodo.query.QueryImpl.getExpression(QueryImpl.java:468)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCQuery.getExpression(JDBCQuery.jav
a:190)
at com.solarmetric.kodo.query.QueryImpl.executeWithMap(QueryImpl.java:342)
at
com.solarmetric.kodo.query.QueryImpl.executeWithArray(QueryImpl.java:529)
at com.solarmetric.kodo.query.QueryImpl.execute(QueryImpl.java:314)
at lepton.knowledgebase.ResourceHome.findByDriver(ResourceHome.java:91)
My jdo mappings (simplified) are:
Resource:
<jdo>
<package name="lepton.knowledgebase">
<class name="Resource" >
<field name="driver">
</field>
<field name="driverId">
</field>
<field name="file">
</field>
</class>
</package>
</jdo>
File:
<jdo>
<package name="lepton.core.file">
<class name="File" >
<field name="fileRole">
</field>
</class>
</package>
</jdo>
FileRole:
<jdo>
<package name="lepton.core.file">
<class name="FileRole" >
<field name="name">
<extension vendor-name="kodo"
key="column-index"
value="true" />
</field>
</class>
</package>
</jdo>
Any help/suggestions would be greatly appreciated. I am seeing this error
in one other query, with a similar (but slightly more involved) syntax.
(The point of commonality is querying a somewhat distant--but
related--portion of the object graph, in the form xx.xx.xx == yy).
Thanks,
David
David Sachs
Redpoint Ventures
[email protected]Abe,
Thanks again for your help. I discovered (much to my embarassment) that
this was a case of a massively silly error on my part, and a somewhat
misleading error message.
The cause of the problem was my query--Kodo is working great.
I had:
public List findByDriver(String driver, String driverId, FileRole fileRole)
q.declareParameters("String driverString, String driverIdString,
FileRole theFileRole);
ArrayList queryArray = new ArrayList();
queryArray.add(driver);
queryArray.add(driverId);
queryArray.add(fileRole);
Collection results = (Collection) q.execute(queryArray);
This should be:
q.declareParameters("String driverString, String driverIdString,
FileRole theFileRole);
Map queryMap = new HashMap();
queryMap.add(driver);
queryMap.add(driverId);
queryMap.add(fileRole);
Collection results = (Collection) q.executeWithMap(queryMap);
It works perfectly, as does the other case in which I saw a
java.io.NotSerializable error.
Anyway, sorry to have wasted your time on this, but maybe there is some way
to make the reported error slightly more specific. As an aside, I did try
to track down whether a superfluous jdo/kodo.jar was lurking anywhere in
Kodo's classpath, but I didn't find anything. Clearly (since this now
works), the properly enhanced FileRole class is present, but the error
message was didn't indicate that I was wildly misusing the q.executeXXX
facility.
Anyway, thanks very much for your assistance, and sorry to have led you
astray chasing down a user error.
David
"Abe White" <[email protected]> wrote in message
news:[email protected]...
I wasn't able to find a class called"javax.jdo.spi.PersistenceCapable"--did
you mean just "javax.jdo.PersistenceCapable?"Yeah, sorry. In JDO 1.0 they moved PersistenceCapable to the 'spi'subpackage;
Kodo 2.2.6 (unlike 2.3, which is out now), uses an older version of the spec.
>
Assuming that you meant javax.jdo.PersistenceCapable, my class reportsthat
it IS persistence capable.Well I've checked our code (the version that you're using), and itcouldn't
really be more clear. It's basically:
if (obj instanceof PersistenceCapable)
... 1 ...
else
... 2 ...
And your stack trace ends up in position 2. That means that to Kodo, that
object is not persistence capable. This has to be a class loader issue.
I assume your install script is run outside of the servlet? Or in a
different web app? Tomcat does some funky things with class loaders; ifyou
have multiple JDO jars floating around there might also technically be
multiple PersistenceCapable classes, and the one Kodo sees is differentthan
the one your application sees. Make sure both the kodo jars and the jdojars
are only in a single location.
This makes sense, since I have been able to create and make persistent
instances of the FileRole class. (I can successfully create a bunch of
FileRoles and persist them to my database as part of my install script,
which would alos fail were FileRole not enhanced).
Any ideas?
Thanks very much,
David
"Abe White" <[email protected]> wrote in message
news:[email protected]...
David --
Before you execute the query, can you please check to see that
(fileRole instanceof javax.jdo.spi.PersistenceCapable) ?
If a parameter isn't persistence-capable, we try to convert it to SQL;
for complex types, this means serializing it. I have a feeling there
is
a class loader issue or something where an unenhanced version of your
class is sneaking in. Let us know what you find out. -
Java.io.NotSerializableException when using POF over Extend
I changed a class to use POF and it seems to work fine among TCMP cluster members but when apps connect with Extend I get an exception indicating that maybe either the extend proxy or client app is not correctly configured to use POF.
(Wrapped) java.io.NotSerializableException: dj_quotes.DJ_Quote
at com.tangosol.util.Base.ensureRuntimeException(Base.java:288)
at com.tangosol.util.Base.ensureRuntimeException(Base.java:269)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Peer.send(Peer.CDB:22)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Peer.post(Peer.CDB:23)
at com.tangosol.coherence.component.net.extend.Channel.post(Channel.CDB:25)
at com.tangosol.coherence.component.net.extend.Channel.send(Channel.CDB:6)
at com.tangosol.coherence.component.net.extend.Channel.receive(Channel.CDB:55)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Peer$DaemonPool$WrapperTask.run(Peer.CDB:9)
at com.tangosol.coherence.component.util.DaemonPool$WrapperTask.run(DaemonPool.CDB:32)
at com.tangosol.coherence.component.util.DaemonPool$Daemon.onNotify(DaemonPool.CDB:63)
at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:42)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.NotSerializableException: dj_quotes.DJ_Quote
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
at com.tangosol.util.ExternalizableHelper.writeSerializable(ExternalizableHelper.java:2252)
at com.tangosol.util.ExternalizableHelper.writeObjectInternal(ExternalizableHelper.java:2696)
at com.tangosol.util.ExternalizableHelper.serializeInternal(ExternalizableHelper.java:2600)
at com.tangosol.util.ExternalizableHelper.toBinary(ExternalizableHelper.java:210)
at com.tangosol.coherence.component.net.extend.proxy.serviceProxy.CacheServiceProxy$ConverterToBinary.convert(CacheServiceProxy.CDB:3)
at com.tangosol.util.ConverterCollections$AbstractConverterEntry.getValue(ConverterCollections.java:3547)
at com.tangosol.io.pof.PofBufferWriter.writeMap(PofBufferWriter.java:1977)
at com.tangosol.coherence.component.net.extend.message.Response.writeExternal(Response.CDB:23)
at com.tangosol.coherence.component.net.extend.message.response.PartialResponse.writeExternal(PartialResponse.CDB:1)
at com.tangosol.coherence.component.net.extend.Codec.encode(Codec.CDB:23)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Peer.encodeMessage(Peer.CDB:23)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.peer.acceptor.TcpAcceptor.encodeMessage(TcpAcceptor.CDB:8)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Peer.send(Peer.CDB:16)
... 9 moreLooks like it failed while attempting default serialization, right?
My extend proxy servers start with
-Dtangosol.coherence.cacheconfig=cache-config-extend-proxy.xml
here:
<?xml version="1.0"?>
<!DOCTYPE cache-config SYSTEM "cache-config.dtd">
<cache-config>
<!-- *********** SCHEME MAPPINGS *********** -->
<caching-scheme-mapping>
<cache-mapping>
<cache-name>quotes.*</cache-name>
<scheme-name>quotes-scheme</scheme-name>
</cache-mapping>
</caching-scheme-mapping>
<!-- ******************************** -->
<caching-schemes>
<proxy-scheme>
<service-name>ExtendTcpProxyService</service-name>
<thread-count>8</thread-count>
<acceptor-config>
<tcp-acceptor>
<local-address>
<address system-property="tangosol.coherence.proxy.address">localhost</address>
<port system-property="tangosol.coherence.proxy.port">9090</port>
</local-address>
</tcp-acceptor>
</acceptor-config>
<proxy-config>
<cache-service-proxy>
<lock-enabled>true</lock-enabled>
</cache-service-proxy>
</proxy-config>
<autostart>true</autostart>
</proxy-scheme>
<distributed-scheme>
<scheme-name>quotes-scheme</scheme-name>
<service-name>DistributedQuotesCacheService</service-name>
<serializer>
<class-name>com.tangosol.io.pof.ConfigurablePofContext</class-name>
<init-params>
<init-param>
<param-type>string</param-type>
<param-value system-property="pof.config">z:/coherence/pof-config.xml</param-value>
</init-param>
</init-params>
</serializer>
<backing-map-scheme>
<local-scheme/>
</backing-map-scheme>
<autostart>true</autostart>
</distributed-scheme>
</caching-schemes>
</cache-config>extend client apps start with
-Dtangosol.coherence.cacheconfig=z:/coherence/cache-config-extend-client.xml
here:
<?xml version="1.0"?>
<!DOCTYPE cache-config SYSTEM "cache-config.dtd">
<cache-config>
<!-- *********** SCHEME MAPPINGS *********** -->
<caching-scheme-mapping>
<cache-mapping>
<cache-name>quotes.*</cache-name>
<scheme-name>extend-scheme</scheme-name>
</cache-mapping>
</caching-scheme-mapping>
<!-- ******************************** -->
<caching-schemes>
<remote-cache-scheme>
<scheme-name>extend-scheme</scheme-name>
<service-name>ExtendTcpCacheService</service-name>
<initiator-config>
<tcp-initiator>
<remote-addresses>
<socket-address>
<address>192.168.3.6</address>
<port>9090</port>
</socket-address>
</remote-addresses>
<connect-timeout>12s</connect-timeout>
</tcp-initiator>
<outgoing-message-handler>
<request-timeout>6s</request-timeout>
</outgoing-message-handler>
</initiator-config>
</remote-cache-scheme>
<!-- ALSO TRIED THIS IN PLACE OF extend-scheme -->
<remote-cache-scheme>
<scheme-name>extend-scheme-pof</scheme-name>
<service-name>ExtendPofTcpCacheService</service-name>
<serializer>
<class-name>com.tangosol.io.pof.ConfigurablePofContext</class-name>
<init-params>
<init-param>
<param-type>string</param-type>
<param-value system-property="pof.config">z:/coherence/pof-config.xml</param-value>
</init-param>
</init-params>
</serializer>
<initiator-config>
<tcp-initiator>
<remote-addresses>
<!-- mothra -->
<socket-address>
<address>192.168.3.6</address>
<port>9090</port>
</socket-address>
</remote-addresses>
<connect-timeout>12s</connect-timeout>
</tcp-initiator>
<outgoing-message-handler>
<request-timeout>6s</request-timeout>
</outgoing-message-handler>
</initiator-config>
</remote-cache-scheme>
</caching-schemes>
</cache-config>pof-config.xml should be fine...
<!DOCTYPE pof-config SYSTEM "pof-config.dtd">
<pof-config>
<user-type-list>
<include>coherence-pof-config.xml</include>
<user-type>
<type-id>10001</type-id>
<class-name>dj_quotes.DJ_Quote</class-name>
</user-type>
</user-type-list>
</pof-config>Any ideas what I missed?
Thanks,
AndrewLooks like I spoke too soon. Moving the <serializer> to the correct location in the Extend client XML config did fix the problem I was seeing but it created a new problem. It appears the Extend client wants to use POF for everything including non-POF services like the one handling the Serializable (non-POF) object oms.Order. That's what I gather from this exception
Exception in thread "AWT-EventQueue-0" (Wrapped) java.io.IOException: unknown user type: oms.Order
at com.tangosol.util.Base.ensureRuntimeException(Base.java:288)
at com.tangosol.util.Base.ensureRuntimeException(Base.java:269)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Peer.send(Peer.CDB:22)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Peer.post(Peer.CDB:23)
at com.tangosol.coherence.component.net.extend.Channel.post(Channel.CDB:25)
at com.tangosol.coherence.component.net.extend.Channel.request(Channel.CDB:18)
at com.tangosol.coherence.component.net.extend.Channel.request(Channel.CDB:1)
at com.tangosol.coherence.component.net.extend.RemoteNamedCache$BinaryCache.putAll(RemoteNamedCache.CDB:10)
at com.tangosol.util.ConverterCollections$ConverterMap.putAll(ConverterCollections.java:1702)
at com.tangosol.coherence.component.net.extend.RemoteNamedCache.putAll(RemoteNamedCache.CDB:1)
at com.tangosol.coherence.component.util.SafeNamedCache.putAll(SafeNamedCache.CDB:1)
at oms.Order.sendMultiple(Order.java:357)
at order_entry_window.OrderEntryPanel$SubmitListener.sendOrder(OrderEntryPanel.java:1307)
at order_entry_window.OrderEntryPanel$SubmitListener.actionPerformed(OrderEntryPanel.java:1321)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.io.IOException: unknown user type: oms.Order
at com.tangosol.io.pof.ConfigurablePofContext.serialize(ConfigurablePofContext.java:341)
at com.tangosol.util.ExternalizableHelper.serializeInternal(ExternalizableHelper.java:2596)
at com.tangosol.util.ExternalizableHelper.toBinary(ExternalizableHelper.java:210)
at com.tangosol.coherence.component.net.extend.RemoteNamedCache$ConverterToBinary.convert(RemoteNamedCache.CDB:4)
at com.tangosol.util.ConverterCollections$AbstractConverterEntry.getValue(ConverterCollections.java:3547)
at com.tangosol.io.pof.PofBufferWriter.writeMap(PofBufferWriter.java:1977)
at com.tangosol.coherence.component.net.extend.messageFactory.NamedCacheFactory$PutAllRequest.writeExternal(NamedCacheFactory.CDB:3)
at com.tangosol.coherence.component.net.extend.Codec.encode(Codec.CDB:23)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Peer.encodeMessage(Peer.CDB:23)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Peer.send(Peer.CDB:16)
... 47 more
Caused by: java.lang.IllegalArgumentException: unknown user type: oms.Order
at com.tangosol.io.pof.ConfigurablePofContext.getUserTypeIdentifier(ConfigurablePofContext.java:420)
at com.tangosol.io.pof.ConfigurablePofContext.getUserTypeIdentifier(ConfigurablePofContext.java:409)
at com.tangosol.io.pof.PofBufferWriter.writeUserType(PofBufferWriter.java:1660)
at com.tangosol.io.pof.PofBufferWriter.writeObject(PofBufferWriter.java:1622)
at com.tangosol.io.pof.ConfigurablePofContext.serialize(ConfigurablePofContext.java:335)
... 56 moreSo I posted a follow-up question here:
Can an extend client use both POF and java.io.Serializable?
Thanks,
Andrew -
Java.io.NotSerializableException
I am running iplanet ias 6.0 sp3 with web server 6.0 sp1. I
successfully deployed an ear file that contains the war and the jar to
the APPS dir. The session ejbs and the entity ejbs are packed into the
jar file which are deployed with the ear.
I have two piece of testing code. One is a standalone java program.
The other one is a jsp page together with the jsp bean which are packed
into the war file in the ear. The jsp bean code and the standalone
program are doing the same thing. They call a session ejb which calls an
entity bean.
I have made 2 experiments
1> Start server, run the standalone test, got the correct result.
Then run the jsp from the browser, got the correct result.
2> Start server, run the jsp from the browser, fail to get the
result. run the standalone test, fail to get the result
The paten is very consistent. The code and the error msg for test 2 are
attached. Could any one tell me what might cause the problem in the
second test and how to resolve the it ?
Thank in advance
Xiao
When the test fails, I got the following error msg from the console.
[10/Nov/2001 12:08:08:3] info: --------------------------------------
[10/Nov/2001 12:08:11:0] error: EBFP-serialize: error during
serialization of me
thod, exception = java.io.NotSerializableException: java.util.Vector$1
java.io.NotSerializableException: java.util.Vector$1
at
java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:845)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:342)
at
java.io.ObjectOutputStream.outputArray(ObjectOutputStream.java:811)
at
java.io.ObjectOutputStream.checkSubstitutableSpecialClasses(ObjectOut
putStream.java:432)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:337)
at
java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java:
1567)
at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java
:453)
at
java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:911)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:342)
at com.kivasoft.ebfp.FPSerializable.serialize(Unknown Source)
at com.kivasoft.thread.ThreadBasic.run(Native Method)
at java.lang.Thread.run(Thread.java:479)
[10/Nov/2001 12:08:11:0] warning: EB-invalidate_delegate: instance
com.plateausy
[email protected] threw
an unche
cked or system exception, ex = ElmsUncheckedException:
getHolidayProfileHolidays()
Nested stack traces:
java.rmi.ServerException: RemoteException occurred in server thread;
nested exce
ption is:
java.rmi.ConnectIOException: <mapped>
java.rmi.ConnectIOException: <mapped>
<<no stack trace available>>
[10/Nov/2001 12:08:11:0] error: Exception Stack Trace:
ElmsUncheckedException:
getHolidayProfileHolidays()
Nested stack traces:
java.rmi.ServerException: RemoteException occurred in server thread;
nested exce
ption is:
java.rmi.ConnectIOException: <mapped>
java.rmi.ConnectIOException: <mapped>
<<no stack trace available>>
at
com.plateausystems.elms.bo.holidayprofile.ejb.HolidayProfileManagerBe
an.getHolidayProfileHolidays(Unknown Source)
at java.lang.reflect.Method.invoke(Native Method)
at
com.plateausystems.elms.bo.holidayprofile.ejb.ejb_skel_com_plateausys
tems_elms_bo_holidayprofile_ejb_HolidayProfileManagerBean.getHolidayProfileHolid
ays(ejb_skel_com_plateausystems_elms_bo_holidayprofile_ejb_HolidayProfileManager
Bean.java:207)
at
com.plateausystems.elms.bo.holidayprofile.ejb.ejb_kcp_skel_HolidayPro
fileManager.getHolidayProfileHolidays__seq_com_plateausystems_elms_bo_holidaypro
__13918743(ejb_kcp_skel_HolidayProfileManager.java:326)
at com.kivasoft.thread.ThreadBasic.run(Native Method)
at java.lang.Thread.run(Thread.java:479)
ERROR [Thread-37] (?:?) - <HolidayProfileManagerJB:getHolidayVOs>Can't
get Holid
ayVOs by holiday profile id.java.rmi.ServerException: RemoteException
occurred i
n server thread; nested exception is:
javax.transaction.TransactionRolledbackException
*************************************************************end of
error msg
The attached is session and entity bean code segment.
In the entity bean:
public Enumeration ejbFindByHolidayProfileID(String id) {
Vector list = new Vector();
try {
Connection connection = DBUtil.getConnection();
try {
PreparedStatement s =
connection.prepareStatement(sqlFindByHolidayProfileID);
try {
s.setString(1, id);
ResultSet rs = s.executeQuery();
try {
while (rs.next()) {
HolidayProfileHolidayPK pk = new
HolidayProfileHolidayPK();
pk.holidayProfileID = rs.getString("hol_prfl_id");
pk.holidayID = rs.getString("hol_id");
list.add(pk);
} finally {
rs.close();
} finally {
s.close();
} finally {
connection.close();
} catch (Exception e) {
throw new EJBException(e);
return list.elements();
In the session bean:
public HolidayProfileHolidayVO[] getHolidayProfileHolidays(String
holidayProfileID) throws ElmsFinderException
HolidayProfileHolidayVO[] vos = null;
ArrayList alst = new ArrayList();
HolidayProfileHolidayHome hphHome =
this.getHolidayProfileHolidayHome();
try {
java.util.Enumeration enum =
hphHome.findByHolidayProfileID(holidayProfileID);
while (enum.hasMoreElements()) {
Object obj = enum.nextElement();
HolidayProfileHoliday bean =
(HolidayProfileHoliday)javax.rmi.PortableRemoteObject.narrow(obj,
HolidayProfileHoliday.class);
alst.add(bean.getVO());
} catch (FinderException e) {
// throw as new ElmsCheckedException subclass
throw new ElmsFinderException("getHolidayProfileHolidays(id):
Could not find HolidayProfileHolidays.", e);
} catch (RemoteException e) {
// throw as new ElmsUncheckedException
throw new ElmsUncheckedException(
"getHolidayProfileHolidays()", e);
} catch (RuntimeException e) {
throw new ElmsUncheckedException(e);
if (alst.size()>0) vos =
(HolidayProfileHolidayVO[])alst.toArray(new HolidayProfileHolidayVO[1]);
return vos;
}Xiao,
We have the same problem.
The reason why your stand alone works, but your browser based doesn't,
is because the iPlanet Application server requires that all EJBs, all
objects held in any EJB, all objects held in attributes in an
HttpSession, and all objects held in those objects MUST implement
java.io.Serializable.
The unfortunate reason why iPlanet does this is because iPlanet does not
preserve the state of objects in memory across hits to the server.
iPlanet serializes each and every object mentioned above when the HTML
is returned to the client, and then un-serializes all the objects again
when it receives another hit from the client. This is true even in the
case of no-dsync sticky load balancing.
This is ridiculous. We use sticky load balancing and we have many
objects stored in HttpSession attributes which we do not want to be
serialized every hit to the server, in the interest of speed. It takes
too long to serialize all the objects, and it would take way too long to
save them in a database every hit.
David Shade
xluo888 wrote:
>
I am running iplanet ias 6.0 sp3 with web server 6.0 sp1. I
successfully deployed an ear file that contains the war and the jar to
the APPS dir. The session ejbs and the entity ejbs are packed into the
jar file which are deployed with the ear.
I have two piece of testing code. One is a standalone java program.
The other one is a jsp page together with the jsp bean which are packed
into the war file in the ear. The jsp bean code and the standalone
program are doing the same thing. They call a session ejb which calls an
entity bean.
I have made 2 experiments
1> Start server, run the standalone test, got the correct result.
Then run the jsp from the browser, got the correct result.
2> Start server, run the jsp from the browser, fail to get the
result. run the standalone test, fail to get the result
The paten is very consistent. The code and the error msg for test 2 are
attached. Could any one tell me what might cause the problem in the
second test and how to resolve the it ?
Thank in advance
Xiao
When the test fails, I got the following error msg from the console.
[10/Nov/2001 12:08:08:3] info: --------------------------------------
[10/Nov/2001 12:08:11:0] error: EBFP-serialize: error during
serialization of me
thod, exception = java.io.NotSerializableException: java.util.Vector$1
java.io.NotSerializableException: java.util.Vector$1
at
java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:845)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:342)
at
java.io.ObjectOutputStream.outputArray(ObjectOutputStream.java:811)
at
java.io.ObjectOutputStream.checkSubstitutableSpecialClasses(ObjectOut
putStream.java:432)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:337)
at
java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java:
1567)
at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java
:453)
at
java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:911)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:342)
at com.kivasoft.ebfp.FPSerializable.serialize(Unknown Source)
at com.kivasoft.thread.ThreadBasic.run(Native Method)
at java.lang.Thread.run(Thread.java:479)
[10/Nov/2001 12:08:11:0] warning: EB-invalidate_delegate: instance
com.plateausy
[email protected] threw
an unche
cked or system exception, ex = ElmsUncheckedException:
getHolidayProfileHolidays()
Nested stack traces:
java.rmi.ServerException: RemoteException occurred in server thread;
nested exce
ption is:
java.rmi.ConnectIOException: <mapped>
java.rmi.ConnectIOException: <mapped>
<<no stack trace available>>
[10/Nov/2001 12:08:11:0] error: Exception Stack Trace:
ElmsUncheckedException:
getHolidayProfileHolidays()
Nested stack traces:
java.rmi.ServerException: RemoteException occurred in server thread;
nested exce
ption is:
java.rmi.ConnectIOException: <mapped>
java.rmi.ConnectIOException: <mapped>
<<no stack trace available>>
at
com.plateausystems.elms.bo.holidayprofile.ejb.HolidayProfileManagerBe
an.getHolidayProfileHolidays(Unknown Source)
at java.lang.reflect.Method.invoke(Native Method)
at
com.plateausystems.elms.bo.holidayprofile.ejb.ejb_skel_com_plateausys
tems_elms_bo_holidayprofile_ejb_HolidayProfileManagerBean.getHolidayProfileHolid
ays(ejb_skel_com_plateausystems_elms_bo_holidayprofile_ejb_HolidayProfileManager
Bean.java:207)
at
com.plateausystems.elms.bo.holidayprofile.ejb.ejb_kcp_skel_HolidayPro
fileManager.getHolidayProfileHolidays__seq_com_plateausystems_elms_bo_holidaypro
__13918743(ejb_kcp_skel_HolidayProfileManager.java:326)
at com.kivasoft.thread.ThreadBasic.run(Native Method)
at java.lang.Thread.run(Thread.java:479)
ERROR [Thread-37] (?:?) - <HolidayProfileManagerJB:getHolidayVOs>Can't
get Holid
ayVOs by holiday profile id.java.rmi.ServerException: RemoteException
occurred i
n server thread; nested exception is:
javax.transaction.TransactionRolledbackException
*************************************************************end of
error msg
The attached is session and entity bean code segment.
In the entity bean:
public Enumeration ejbFindByHolidayProfileID(String id) {
Vector list = new Vector();
try {
Connection connection = DBUtil.getConnection();
try {
PreparedStatement s =
connection.prepareStatement(sqlFindByHolidayProfileID);
try {
s.setString(1, id);
ResultSet rs = s.executeQuery();
try {
while (rs.next()) {
HolidayProfileHolidayPK pk = new
HolidayProfileHolidayPK();
pk.holidayProfileID = rs.getString("hol_prfl_id");
pk.holidayID = rs.getString("hol_id");
list.add(pk);
} finally {
rs.close();
} finally {
s.close();
} finally {
connection.close();
} catch (Exception e) {
throw new EJBException(e);
return list.elements();
In the session bean:
public HolidayProfileHolidayVO[] getHolidayProfileHolidays(String
holidayProfileID) throws ElmsFinderException
HolidayProfileHolidayVO[] vos = null;
ArrayList alst = new ArrayList();
HolidayProfileHolidayHome hphHome =
this.getHolidayProfileHolidayHome();
try {
java.util.Enumeration enum =
hphHome.findByHolidayProfileID(holidayProfileID);
while (enum.hasMoreElements()) {
Object obj = enum.nextElement();
HolidayProfileHoliday bean =
(HolidayProfileHoliday)javax.rmi.PortableRemoteObject.narrow(obj,
HolidayProfileHoliday.class);
alst.add(bean.getVO());
} catch (FinderException e) {
// throw as new ElmsCheckedException subclass
throw new ElmsFinderException("getHolidayProfileHolidays(id):
Could not find HolidayProfileHolidays.", e);
} catch (RemoteException e) {
// throw as new ElmsUncheckedException
throw new ElmsUncheckedException(
"getHolidayProfileHolidays()", e);
} catch (RuntimeException e) {
throw new ElmsUncheckedException(e);
if (alst.size()>0) vos =
(HolidayProfileHolidayVO[])alst.toArray(new HolidayProfileHolidayVO[1]);
return vos; -
Java.io.NotSerializableException: sun.java2d.SunGraphics2D
Gentlemen,
I cannot find the reason for the following error message and it is driving me mad ... :-)
java.io.NotSerializableException: sun.java2d.SunGraphics2D
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1330)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1302)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1245)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1330)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1302)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1245)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at gui.PreProcessor.b_save_actionPerformed(PreProcessor.java:964)
..... abbreviated
I can figure out the reason being that something inside the _Spline class is not serializable but I've checked everything and it seems fine. All custom classes implements Serializable.
Is there anyone who can give me a hint on what to look for? Is the sun.java2d.SunGraphics2D connected to any Swing component?
Your reply highly appreciated.
/Jonas Forssell, Sweden
Here follows the class which for some reason cannot be serialized.
package j3d;
import java.awt.*;
import java.io.*;
import java.util.Vector;
import javax.swing.tree.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.table.*;
import gui.*;
* Creates a nurbcurve in the shape of a Pline
* @author Jonas Forssell, Yuriy Mikhaylovskiy
public class _Spline extends _NurbCurve implements _Object, Serializable{
private Vector points = new Vector();
private JTable table;
private DefaultTableModel tableModel;
private JButton jButton1, jButton2, jButton3;
private JComboBox jComboBox1;
static String[] hdr = {"Points"};
private String[] curvetype = {"Polyline","Quadratic","Cubical"};
* Creates a new Pline. The parameters are:
* @param points[] Starting point (distance to center point sets radius)
* @param color Color of the arc
* @param element_type element type to be used for the FE-mesh
* @param element_material element material to be used for the FE-mesh
* @param element_diameter diameter of the element in the mesh
public _Spline(boolean add) {
super(add);
order = 1;
protected void writeObject(ObjectOutputStream out) throws IOException{
super.writeObject(out);
out.writeObject(points);
protected void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException{
super.readObject(in);
points = (Vector)in.readObject();
public void reset(){
_Point p;
int kl;
// Inititalize
// Generate the control points
controlPoints = new _CtrlPoint[points.size()];
for (int i=0; i<points.size(); i++) {
p = (_Point)points.elementAt(i);
controlPoints[i] = new _CtrlPoint(p.x, p.y, p.z,1.0f,Color.GRAY);
// Generate the knots
kl = controlPoints.length+order+1;
knots = new float[kl];
for (int i=0; i<=order; i++) {
knots[i] = 0.0f;
knots[kl-1-i] = 1.0f;
for (int i=1; i < controlPoints.length-order; i++) {
knots[order+i] = (float)(i)/(float)(controlPoints.length-order);
// Generate geometry & mesh
super.reset();
public String toString(){ return "Spline ID=" + Id;}
public MutableTreeNode get_TreeNode(){
DefaultMutableTreeNode node = new DefaultMutableTreeNode(this);
// Add unique data for the _Arc
for (int i=0; i<points.size(); i++)
node.add(((_Point)points.elementAt(i)).get_TreeNode());
// Add mesh data from _NurbCurve
node.add(super.get_TreeNode());
return node;
public JPanel getEditPanel(Canvas3D j3d, PreProcessor pp){
this.J3D = j3d;
this.PreP = pp;
JPanel jPanel0 = new JPanel();
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JPanel jPanel3 = new JPanel();
jComboBox1 = new JComboBox(curvetype);
jButton1 = new JButton(add == true?"Add":"Update");
jButton2 = new JButton("Add Point");
jButton3 = new JButton("Delete");
String[] tmp = new String[1];
tableModel = new DefaultTableModel(hdr,0);
table = new JTable(tableModel);
for(int i=0; i<points.size(); i++) {
tmp[0] = ((_Point)points.elementAt(i)).toString();
tableModel.addRow(tmp);
JPanel p = new JPanel(new BorderLayout());
JPanel p1 = new JPanel(new BorderLayout());
JScrollPane sp = new JScrollPane();
sp.setPreferredSize(new Dimension(180, 200));
// Add all geometry data
jPanel0.setLayout(new BoxLayout(jPanel0, BoxLayout.Y_AXIS));
jPanel0.add(sp);
sp.getViewport().add(table, null);
jPanel0.add(jPanel1);
jPanel1.setLayout(new GridLayout(1,2));
jPanel1.add(jButton2, null);
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton2_actionPerformed(e);
jPanel1.add(jButton3, null);
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton3_actionPerformed(e);
jPanel0.add(jPanel3);
jPanel3.setLayout(new GridLayout(1,2));
jPanel3.add(new JLabel("Curve Type"));
jPanel3.add(jComboBox1);
jComboBox1.setSelectedIndex(order-1);
// Add all mesh data
jPanel0.add(super.getEditPanel(j3d,pp));
// Finally, the update button
jPanel0.add(jPanel2);
jPanel2.add(jButton1);
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton1_actionPerformed(e);
jPanel0.validate();
return jPanel0;
void jButton1_actionPerformed(ActionEvent e) {
_Spline tmp = this;
if(points.size() == 0) return;
order = jComboBox1.getSelectedIndex()+1;
tmp.update(e);
tmp.reset();
if(add == true) {
try {
tmp = (_Spline)this.clone();
J3D.add3D(tmp);
} catch (CloneNotSupportedException e1) {
e1.printStackTrace();
tmp.add = false;
J3D.tree_reset();
J3D.view_reset();
J3D.repaint();
void jButton2_actionPerformed(ActionEvent e) {
String[] tmp = new String[1];
Object[] obj = J3D.getSelectedObjects3D();
for (int i=0; i<obj.length; i++)
if(obj[i] !=null && obj[i] instanceof _Point){
points.add((_Point)obj);
tmp[0] = obj[i].toString();
tableModel.addRow(tmp);
void jButton3_actionPerformed(ActionEvent e) {
int index = -1;
Object[] obj = J3D.getSelectedObjects3D();
for (int i=0; i<obj.length; i++)
if(obj[i]!=null && obj[i] instanceof _Point){
index = points.indexOf(obj[i]);
if (index >=0) {
points.removeElementAt(index);
tableModel.removeRow(index);I agree, it looks frustrating. Obviously the serialization process has found the non-serializable object during the traversal of the object graph, but its difficult to know where this is.
Your class looks a bit "serialization-heavy", if you don't mind me saying. I avoid serializing anything to do with swing components and stick to collections and my own classes. Do you need to serialize these? If not, mark them transient. You can do this for all of them and then reintroduce into the serialized form one at a time to see which one causes the problem (just for curiosity).
When the object is deserialized you will have to make the necessary arrangements to set up any members that you marked transient, as these will be null. You can do this is readObject, but on this subject, why are you writing out the points member explicitly? It will be written out anyway since there is nothing special about it.
I don't know how familiar you are with the serialization package but its a sharp instrument that needs respect. I would advise reading the specification, if you haven't already done so. -
Java.io.NotSerializableException: java.util.Vector$1
I am using Java 2 in the API it says that the Vector implements Serializable but I am getting an exception java.io.NotSerializableException: java.util.Vector$1 I don't know why please help.
Thank you
palanisrAlthough Vectors are Serializable that doesn't mean that the contents of a Vector are necessarily Serializable. What are the contents of your Vector? Are they objects of a Serializable class? If not that is your problem. The attached sample code demonstrates the problem of serializing a Vector that contains non-serializable data. If you make the Employee class Serializable the code works.
import java.util.*;
import java.io.*;
public class Serialize
public static void main(String args[])
ObjectOutputStream oos = null;
FileOutputStream fos = null;
Vector v = new Vector();
v.add(new Employee("Smith","John"));
v.add(new Employee("Jones","Albert"));
try
fos = new FileOutputStream("vector.ser");
oos = new ObjectOutputStream(fos);
oos.writeObject(v);
catch(FileNotFoundException fnfe)
fnfe.printStackTrace();
catch(IOException ioe)
ioe.printStackTrace();
finally
try
if (oos != null)
oos.close();
catch(IOException ioe)
try
if (fos != null)
fos.close();
catch(IOException ioe)
class Employee //implements Serializable
private String lastName;
private String firstName;
public Employee(String lastName, String firstName)
this.lastName = lastName;
this.firstName = firstName;
} -
Java.io.NotSerializableException: paint.Main$1
hi everybody this is my problem...
i have this code:
public class Main extends JFrame
class figura implements Serializable
Point x, y;
int tipo;
int rettipo(){ return tipo;}
public Point retx(){ return x;}
public Point rety(){ return y;}
void ponertipo(int a){ tipo = a; }
void ponerpx(Point a){ x = a; }
void ponery(Point a){ y = a;}
JFileChooser archivos = new JFileChooser();
Vector almacen = new Vector(1);
figura temp = new figura();
.... //more code....
i wanna save temp object in a file...
....//more code before this...
archivos.showSaveDialog(Main.this);
File archivo;
FileOutputStream archivo2 = null;
ObjectOutputStream obj = null;
archivo = archivos.getSelectedFile();
try{
archivo2 = new FileOutputStream(archivo.getAbsolutePath());
obj = new ObjectOutputStream(archivo2);
obj.writeObject(temp);
obj.close();
catch(Exception ex)
Throwable tro;
ex.printStackTrace();
tro=ex.getCause();
tro.getMessage();
and this is what i got:
java.io.NotSerializableException: paint.Main$1
and this:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Any ideas?why with static the problem is solved?Because a static nested class doesn't have a hidden reference to the outer object.
i understand
that static makes that all instance of the class will
share the same values of their attributesNo it doesn't. It just means the above, and also that the class doesn't have access to instance data members of the enclosing class.
if the class is static i wont be able to save more
than one figure. am i right?No you're not, see above. -
Encountered java.io.NotSerializableException
Hi
We are working on a project using Weblogic 7.0 sp 7 installed in Solaris 9. The deployment files have been used for about 1-2 weeks and nothing happened until we restarted the Weblogic server.
What are the possible causes of the exceptions?
Following are the exceptions captured from Weblogic console:
<Dec 27, 2007 7:18:21 PM SGT> <Error> <HTTP> <101002> <[ServletContext(id=3526297,name=ICMSWebApp,context-path=)] Could not deserialize context attribute
java.io.NotSerializableException: weblogic.servlet.internal.WebAppServletContext
Start server side stack trace:
java.io.NotSerializableException: weblogic.servlet.internal.WebAppServletContext
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:91)
at weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:66)
at weblogic.servlet.internal.WebAppServletContext.getAttribute(WebAppServletContext.java:417)
at org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:802)
at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:506)
at jsp_servlet._common.__IcmsCaseNoteList._jspService(IcmsCaseNoteList.jsp:174)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1104)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:430)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:491)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:324)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:344)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1104)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:430)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:324)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5764)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:690)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3230)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2642)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:262)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:224)
End server side stack trace
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:91)
at weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:66)
at weblogic.servlet.internal.WebAppServletContext.getAttribute(WebAppServletContext.java:417)
at org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:802)
at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:506)
at jsp_servlet._common.__IcmsCaseNoteList._jspService(IcmsCaseNoteList.jsp:174)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1104)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:430)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:491)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:324)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:344)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1104)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:430)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:324)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5764)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:690)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3230)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2642)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:262)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:224)
>
<Dec 27, 2007 7:18:21 PM SGT> <Error> <HTTP> <101002> <[ServletContext(id=3526297,name=ICMSWebApp,context-path=)] Could not deserialize context attribute
java.io.NotSerializableException: org.apache.struts.validator.ValidatorPlugIn
Start server side stack trace:
java.io.NotSerializableException: org.apache.struts.validator.ValidatorPlugIn
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1224)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1050)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:91)
at weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:66)
at weblogic.servlet.internal.WebAppServletContext.getAttribute(WebAppServletContext.java:417)
at org.apache.struts.action.ActionServlet.destroyModules(ActionServlet.java:721)
at org.apache.struts.action.ActionServlet.destroy(ActionServlet.java:430)
at weblogic.servlet.internal.ServletStubImpl$ServletDestroyAction.run(ServletStubImpl.java:1137)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:690)
at weblogic.servlet.internal.ServletStubImpl.destroyServlet(ServletStubImpl.java:628)
at weblogic.servlet.internal.ServletStubImpl.destroyServlet(ServletStubImpl.java:654)
at weblogic.servlet.internal.ServletStubImpl.checkForReload(ServletStubImpl.java:744)
at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:567)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:382)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:324)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5764)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:690)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3230)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2642)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:262)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:224)
End server side stack trace
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1224)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1050)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:91)
at weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:66)
at weblogic.servlet.internal.WebAppServletContext.getAttribute(WebAppServletContext.java:417)
at org.apache.struts.action.ActionServlet.destroyModules(ActionServlet.java:721)
at org.apache.struts.action.ActionServlet.destroy(ActionServlet.java:430)
at weblogic.servlet.internal.ServletStubImpl$ServletDestroyAction.run(ServletStubImpl.java:1137)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:690)
at weblogic.servlet.internal.ServletStubImpl.destroyServlet(ServletStubImpl.java:628)
at weblogic.servlet.internal.ServletStubImpl.destroyServlet(ServletStubImpl.java:654)
at weblogic.servlet.internal.ServletStubImpl.checkForReload(ServletStubImpl.java:744)
at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:567)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:382)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:324)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5764)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:690)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3230)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2642)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:262)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:224)
>
<Dec 27, 2007 7:18:48 PM SGT> <Error> <HTTP> <101017> <[ServletContext(id=3526297,name=ICMSWebApp,context-path=)] Root cause of ServletException
java.lang.ClassCastException
at org.apache.struts.util.RequestUtils.selectModule(RequestUtils.java:1731)
at org.apache.struts.util.RequestUtils.selectModule(RequestUtils.java:1770)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1481)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1104)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:430)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:324)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5764)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:690)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3230)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2642)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:262)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:224)
>
<Dec 27, 2007 7:18:48 PM SGT> <Error> <HTTP> <101017> <[ServletContext(id=3526297,name=ICMSWebApp,context-path=)] Root cause of ServletException
java.lang.ClassCastException
at org.apache.struts.action.ActionServlet.getRequestProcessor(ActionServlet.java:855)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1104)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:430)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:324)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5764)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:690)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3230)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2642)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:262)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:224)
>
Thanks,
Agus
Edited by agusprayudhi at 12/27/2007 9:36 PMAfter restarting the weblogic, I performed several functions and everything was okay. When I checked the Weblogic server output, no exception was thrown. However, when one of the user accessed one of application functions, the Weblogic suddenly threw those exceptions. I have no idea what caused the Weblogic to throw those exceptions.
The application was deployed in managed server (no clustering). It was developed using Struts, EJB, and Oracle. From the exception stack trace, it seems that the problem lies on the servlet. The reason why I said so is that we also have other running jobs that depend on the EJB and all running jobs completed successfully.
Any idea on the causes?
Thanks.
Maybe you are looking for
-
Is there a way to create a local package repository
Is there a way to create a local package repository without technically being a mirror. For example, setting up multiple AL box's on my network and having them grab all the latest packages from one AL box? Thanks, Craig
-
Error while configuring the database
Hello all- I have installed Oracle 11G and i am trying to create a Database via Database Configuration Assistant & i get following Error: May 17, 2010 2:22:55 PM oracle.sysman.emcp.EMConfig perform SEVERE: Listener is not up or database service is no
-
Can I safely plug a Mac Pro desktop, bought in America, into a UK socket?
My father bought a Mac Pro desktop from America and the cable to plug it to the electricity says 125 volts - can we plug it safely into a UK socket where the voltage is 250 volts without damaging the desktop computer, or, do we need to do something e
-
Drilling: Present column a but drill on column b
Hi everyone, I've gotten myself into an interesting situation. I'm reporting a financial metric which the users wanted formatted with dollars on the Y-axis and "period<br>year" on the X-axis. They were very particular about having a line break betwee
-
IPhone 4 refuses to sync to iTunes
I updated my iPhone 4 to the new iOS5 software today (Oct 12th, 2011) and all the new apps run perfectly. However I have two problems now; 1. A good chunk of my album artwork did not sync onto my iPhone. I'm not missing any music, so I might have to