Either your visit is not serializable, or a persistent property is not
serializable. Generally, web containers serialize attributes of a session
when they start transporting the sessions around in clusters.

Richard 

-----Original Message-----
From: Werner Lehmann [mailto:[EMAIL PROTECTED] 
Sent: Friday, June 17, 2005 9:54 AM
To: Tapestry users
Subject: NotSerializableException: DelegatingPropertySource (WebLogic)

Hi,

does anyone have a clue why WebLogic 8.1 SP2 throws this error? I have a 
Tapestry 3.0.3 application running on it and if I "hammer" the app with 
two continuously running wgets I receive exceptions like below eventually:

> ####<16.06.2005 15.10 Uhr CEST> <Error> <HTTP> <miraculix> <MintManaged>
<ExecuteThread: '12' for queue: 'weblogic.kernel.Default'> <<anonymous>> <>
<BEA-101309> <[ServletContext(id=27529215,name=mymint,context-path=/mymint)]
could not deserialize the context attribute
"org.apache.tapestry.PropertySource:MyMint"
> java.io.NotSerializableException:
org.apache.tapestry.util.DelegatingPropertySource
>       at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
>       at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
>       at
weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:9
5)
>       at
weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:6
7)
>       at
weblogic.servlet.internal.WebAppServletContext.getAttribute(WebAppServletCon
text.java:637)
>       at
org.apache.tapestry.engine.AbstractEngine.setupForRequest(AbstractEngine.jav
a:1278)
>       at
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:841)
>       at
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:198
)
>       at
org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:159)
>       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(Servle
tStubImpl.java:1053)
>       at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:387)
>       at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
>       at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
>       at
org.apache.tapestry.RedirectFilter.doFilter(RedirectFilter.java:106)
>       at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
>       at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
ebAppServletContext.java:6316)
>       at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubjec
t.java:317)
>       at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
>       at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.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)

When this happens, most of the time it is followed by other very similar 
call stacks with just other Tapestry classes, e.g.

> java.io.NotSerializableException:
org.apache.tapestry.enhance.DefaultComponentClassEnhancer
> java.io.NotSerializableException: org.apache.tapestry.util.pool.Pool
> java.io.NotSerializableException:
org.apache.tapestry.engine.DefaultTemplateSource
> java.io.NotSerializableException: org.apache.tapestry.pageload.PageSource

among others. These classes are not serializable (at least, 
DelegatingPropertySource is not, it does not even implement the interface).

Also strange: it complains about not being able to "deserialize the 
context attribute" (as in the trace above). Hence _serializing_ was not 
a problem for it?

Might this be related to this fix in WebLogic 8.1 SP5?

CR189815:
http://e-docs.bea.com/wls/docs81/notes/resolved_sp05.html#1864954

> If any change was made in the HttpServletContext that extends
> ActionForm in Struts framework, WebLogic Server was throwing a
> ClassCastException while accessing it.
> 
> Now, when the servlet is reloaded, any non-serializable attribute
> (stored in HttpServletContext) that is loaded using the servlet or
> its child classes is removed from HttpServletContext. As a result,
> the WebLogic Server no longer throws a ClassCastException while
> accessing HttpServletContext.


Regards
Werner

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to