You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Marc Dugger <ma...@socotech.com> on 2003/10/19 14:36:32 UTC

RE: "could not deserialize the context attribute .. " (configuration: struts 1.1 + web logic 8.1), is it a known bug ?

I had a somewhat similar issue with Tomcat when it came to serializing a
FormFile.  I got around this by extending the MultipartRequestHandler and
implementing Serializable.  It appears that you could do the same with the
RequestProcessor.  Be sure to add this to your struts-config.xml:

<controller contentType="text/html;charset=UTF-8" locale="true"
nocache="true" processorClass="your.package.CustomRequestProcessor"
debug="9" />


> -----Original Message-----
> From: Shay Cohen [mailto:shayc@businesslayers.co.il]
> Sent: Sunday, October 19, 2003 3:17 AM
> To: 'struts-user@jakarta.apache.org'
> Subject: "could not deserialize the context attribute .. "
> (configuration: struts 1.1 + web logic 8.1), is it a known bug ?
>
>
> Hi,
>
> I've encountered lately the following exception "Could not deserialize
> context attribute....". Reported on the following attribute:
>
>
>             Attribute: org.apache.struts.action.REQUEST_PROCESSOR (object:
> org.apache.struts.tiles.TilesRequestProcessor)
>
> After reading old emails concerning the subject, I've learned that this is
> due to weblogic restrictions that require context attributes to be
> serializable.
>
>
> Is there any workaround to this problem? will it be solved  ?
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: struts-user-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-user-help@jakarta.apache.org


Re: "could not deserialize the context attribute .. " (configuration: struts 1.1 + web logic 8.1), is it a known bug ?

Posted by Martin Gainty <mg...@hotmail.com>.
This is a WL specific issue
"servlet 2.3 spec disallow non serialized objects in the PageContext so
built this into the current
release of Weblogic."

Later on Matt Heaton remarks:
"Struts source and it's trying to use objects which aren't serializable as
JSP page context attributes"

Craig McClanahan replies:
"Yep.  Looking more closely at the error message, it is complaining about a
non-Serializable *context* attribute, not a *session* attribute.  I, like
others, jumped to the wrong conclusion there. The spec provides no
prohibitions on this -- only a warning that you cannot
use a context attribute to share information globally in your application
(the
way that the example app does with its pseudo-database) in a distributed
nvironment.
Is there by chance some WebLogic specific configuration property you have
set that makes it think this (or maybe all) applications should be treated
as distributable?"

A Later comment by Craig:
"I'm afraid that I see no such requirement in the servlet 2.3 spec (and I'm
on
the expert group that came up with it :-).  The only restrictions on
Serializable attributes in the spec itself relate to *session* attributes,
not
*context* attributes.  And that restriction only applies when you mark your
app
as <distributable/>.

Note also that the WebLogic response quoted in the message from Ruslan gave
an
entirely different reasoning (their application server requires all
attributes
to be Serializable if you use the "reload on modify" feature).  That's an
entirely reasonable restriction for WebLogic to place, based on their
container's internal architecture.  It's not, however, a spec compliance
issue.

That all being said, I'm looking at ways to make MessageResources a
Serializable
object.  Unfortunately, java.util.ResourceBundle (which it relies on) is
*not*
Serializable, so a different solution to that is going to be required.

The pseudo-database in the Struts example application (which has nothing to
do
with the framework itself) is not Serializable, and will *not* operate
correctly
in a distributed environment.  I'm NOT planning on changing that in the
short
term, because it's only there to give you a quick "proof of concept" that
Struts
is working, plus some examples of some Struts-related development
techniques."

http://www.mail-archive.com/struts-user@jakarta.apache.org/msg01017.html

Weblogic Solution:
"WLS comes with reload-on-modify turned on out of the box. You can turn it
off by setting reload periods to -1 (never check). There are two separate
params for JSP and servlets.
The one for JSPs is set in weblogic.xml descriptor,
the one for servlets is set in the console."

i.e. Turn off reload-on-modify

Sorry for the long-winded response!

-Martin
----- Original Message ----- 
From: "Marc Dugger" <ma...@socotech.com>
To: "Struts Users Mailing List" <st...@jakarta.apache.org>
Sent: Sunday, October 19, 2003 8:36 AM
Subject: RE: "could not deserialize the context attribute .. "
(configuration: struts 1.1 + web logic 8.1), is it a known bug ?


> I had a somewhat similar issue with Tomcat when it came to serializing a
> FormFile.  I got around this by extending the MultipartRequestHandler and
> implementing Serializable.  It appears that you could do the same with the
> RequestProcessor.  Be sure to add this to your struts-config.xml:
>
> <controller contentType="text/html;charset=UTF-8" locale="true"
> nocache="true" processorClass="your.package.CustomRequestProcessor"
> debug="9" />
>
>
> > -----Original Message-----
> > From: Shay Cohen [mailto:shayc@businesslayers.co.il]
> > Sent: Sunday, October 19, 2003 3:17 AM
> > To: 'struts-user@jakarta.apache.org'
> > Subject: "could not deserialize the context attribute .. "
> > (configuration: struts 1.1 + web logic 8.1), is it a known bug ?
> >
> >
> > Hi,
> >
> > I've encountered lately the following exception "Could not deserialize
> > context attribute....". Reported on the following attribute:
> >
> >
> >             Attribute: org.apache.struts.action.REQUEST_PROCESSOR
(object:
> > org.apache.struts.tiles.TilesRequestProcessor)
> >
> > After reading old emails concerning the subject, I've learned that this
is
> > due to weblogic restrictions that require context attributes to be
> > serializable.
> >
> >
> > Is there any workaround to this problem? will it be solved  ?
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: struts-user-help@jakarta.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: struts-user-help@jakarta.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-user-help@jakarta.apache.org