After some research, I found that my problem is not caused by a Hibernate specific
exception that gets thrown.
I use the GetProcessInstancesCommand in order to experiment with querying the remote ejb.
This command returns a list with ProcessInstances. A ProcessInstance is read by Hibernate
from the database. As Hibernate uses specific lazy-loading-aware implementations for
collections -- the ProcessInstance.instances attribute, which is declared of type
java.util.Map, is actually implemented by org.hibernate.collections.PersistentMap.
Which generates class loading exception while deserializing to hibernate-unaware ejb
clients.
The solution would then be for the Command implementations to return clean JDK
collections, by replacing Hibernate collection with JDK standard ones. Note that IIUC only
the collections must be replaced, not the collection contents too, so the
"cleaning" operation should not be that expensive.
For people querying the SLSB remotely that should be no problem really, compared to the
network marshalling cost. I wonder if other in-JVM uses of various Command's would be
more sensitive performance-wise to adding some cleaning code to the standard Command
implementions in jbpm-jpdl.jar.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4059447#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...