On Mar 6, 2012, at 10:01 PM, Paul Ferraro wrote:
----- Original Message -----
> </snip>
>
> (***) I still don't fully understand how web apps don't have the same
> issue as 2LC of not seeing Infinispan classes (Reminder: we're not
> talking about the contents of the cache, but about the Infinispan
> classes themselves).
To reiterate: in the case of web sessions, the cache instance for an application is
associated with the classloader of the org.jboss.as.clustering.web.infinispan module. The
AS clustering code shields Infinispan from direct interaction with application objects by
storing sessions as MarshalledValues which are eagerly marshalled into byte[] and lazily
unmarshalled using an application-specific MarshallingConfiguration.
This has been the case since AS5, if not earlier (albeit using JBoss Serialization +
JBoss Cache + TCCL manipulation).
Paul, that explains how you can deserialize the *contents of the cache*.
My question is different: I'm talking about how, the web app, can see *Infinispan
classes*.
In Scott's issue, the web app uses Hibernate but during unmarshalling but it cannot
locate Infinispan classes:
07:27:32,225 SEVERE [org.jgroups.blocks.RequestCorrelator] (OOB-20,null) failed
unmarshalling buffer into return value: java.lang.ClassNotFoundException:
org.infinispan.CacheException from [Module "deployment.stateful.war:main" from
Service Module Loader]
I'm trying to understand how come it works for session repl, but it doesn't for
2LC. It seems to me that you should be having the same problem if you cannot plug
Infinispan with the ModuleClassResolver.
Let's talk on IRC...
--
Galder Zamarreño
Sr. Software Engineer
Infinispan, JBoss Cache