ERROR [JGStore] could not demarshal incoming update
java.lang.ClassNotFoundException: inocrea.web.webmail.model.JwmaSession
at java.net.URLClassLoader$1.run(URLClassLoader.java:198)
at java.security.AccessController.doPrivileged(Native Method) at
java.net.URLClassLoader.findClass(URLClassLoader.java:186) at
java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at
java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:566)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:217)
at
org.mortbay.j2ee.session.MarshallingInterceptor$ObjectInputStream.resolveClass(MarshallingInterceptor.java:70)
at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1513)
(...)
After this (not so bright) introduction, here goes the problem:
Environment: JBoss 3.0.6 "all", Linux, Sun j2sdk_1.4.1_01.
I've got a web app that needs to replicate some http session info. I had
two exceptions when I tried to access the app:
a) could not marshal outgoing update [sender node]
b) could not demarshal incoming update [receiver node]
I've figured out that the problem of a) lied in a class [JwmaSession] that
was being stored
in my http session:
public class JwmaSession implements Serializable {
//instance attributes
private boolean m_Authenticated;
private boolean m_LanguageToggled=true;
//http session state related
private List m_BeanNames;
transient private HttpServletRequest m_Request;
transient private HttpServletResponse m_Response;
transient private HttpSession m_WebSession;
private String[] m_ViewHistory;
//mail session state related
private String m_PostOfficeHost = null;
private boolean m_PostOfficeConnected = false;
//utility attributes
private JwmaPreferencesImpl m_Preferences;
private JwmaHtmlHelper m_HtmlHelper=new JwmaHtmlHelperImpl();
private MailSession remote;
(...)
private void storeDefaultBeans() {
//the session bean
m_WebSession.setAttribute("jwma.session",this);
//the HtmlHelper bean
m_WebSession.setAttribute("jwma.htmlhelper",m_HtmlHelper);
}//storeDefaultBeans
(...)
I got rid of "a)" by setting HttpServletRequest,HttpServletResponse and
HttpSession as transients, as you can see in the code above.
I've done this as the exception stacktrace was like this:
ERROR [org.mortbay.j2ee.session.JGStore] could not marshal outgoing update
java.io.NotSerializableException: org.mortbay.j2ee.session.StateAdaptor
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
(...)
at inocrea.web.webmail.model.JwmaSession.storeDefaultBeans(Unknown
Source)
(...)
This way, the node to where I directed the messege no longer reported
those messages.
However, at the brother nodes, I still have the exception I posted at the
top of this e-mail...
and this is a bit weird for me:
ClassNotFoundException: inocrea.web.webmail.model.JwmaSession?!?
It makes no sense ... does it? The app is deployed in every node I've got!
Can someone point me for a possible problem?
Thank you
Joao Clemente
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user