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

Reply via email to