You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by "Craig R. McClanahan" <Cr...@eng.sun.com> on 2000/12/13 01:59:35 UTC

Follow-Up: WebLogic 6.0 Beta and Struts

As promised, I followed up with the WebLogic representative (Mark Spotswood,
<ma...@bea.com>) regarding the topic of WebLogic's 6.0 beta requiring
serializable *servlet context* (i.e. application scope) attributes, as opposed
to serializable *session* attributes.  This requirement prevents the Struts
Example Application from running under the current beta, because it uses
non-Serializable servlet context attributes for the message resources object, as
well as for the pseudo-database used to represent the application data.

We agreed that this restriction is indeed mandated by the WebLogic container,
and *not* by the servlet API specification.  Mark ackowledged that his quoting
the servlet spec commands about *session* attributes was somewhat confusing, and
could have been mis-interpreted.

Further, Mark explained the technical reason that WebLogic imposed this
requirement (to enable automatic reloading of web applications when classes are
changed).  Depending on how you build your web application class loader, this is
not at all an unreasonable design choice.

As a workaround, Mark recommended turning off the support for automatic
reloading (which is on by default).  However, in subsequent testing he found
that following this suggestion still doesn't remove the WebLogic requirement --
so the Struts example application still won't run.  He has filed an issue with
WebLogic support to address this in some future release of the 6.0 beta.  For
the short term, however (until WebLogic issues an update or patch for this),
Struts applications will not work under the WebLogic 6.0 beta.

In summary, this particular issue has turned out to be a container-specific
item.  However, it has highlighted the fact that Struts is being contemplated
for use in large scale, distributed, application servers -- and that Struts
should make every effort to use Serializable servlet context (application scope)
attributes where possbile.  As a result of this, I'm undertaking a review of all
the objects that the core Struts framework (as opposed to the example
application) stores in servlet context attributes.  Most of them can be easily
made Serializable -- the hard one is the MessageResources class, which utilizes
Java's underlying support for resource bundles.  Unfortunately, these classes do
*not* implement Serializable, so this class needs to be re-implemented.  Work to
do this is in progress.

Craig McClanahan



Re: Follow-Up: WebLogic 6.0 Beta and Struts

Posted by David Reynolds <da...@netcertification.com>.
I know that this may be too much detail for you, so I'll give the summary. This is
interesting because it shows:
1. Other people are wanting to use struts(apache jsp/taglib framework) with
WebLogic, and therefore probably in some serious apps/enterprises
2. The apache guys are on top of their game in finding out why it won't work
currently and recognizing that it is probably worth while to make changes so that it
will work

Both good signs for us if we decide to use it

David

"Craig R. McClanahan" wrote:

> As promised, I followed up with the WebLogic representative (Mark Spotswood,
> <ma...@bea.com>) regarding the topic of WebLogic's 6.0 beta requiring
> serializable *servlet context* (i.e. application scope) attributes, as opposed
> to serializable *session* attributes.  This requirement prevents the Struts
> Example Application from running under the current beta, because it uses
> non-Serializable servlet context attributes for the message resources object, as
> well as for the pseudo-database used to represent the application data.
>
> We agreed that this restriction is indeed mandated by the WebLogic container,
> and *not* by the servlet API specification.  Mark ackowledged that his quoting
> the servlet spec commands about *session* attributes was somewhat confusing, and
> could have been mis-interpreted.
>
> Further, Mark explained the technical reason that WebLogic imposed this
> requirement (to enable automatic reloading of web applications when classes are
> changed).  Depending on how you build your web application class loader, this is
> not at all an unreasonable design choice.
>
> As a workaround, Mark recommended turning off the support for automatic
> reloading (which is on by default).  However, in subsequent testing he found
> that following this suggestion still doesn't remove the WebLogic requirement --
> so the Struts example application still won't run.  He has filed an issue with
> WebLogic support to address this in some future release of the 6.0 beta.  For
> the short term, however (until WebLogic issues an update or patch for this),
> Struts applications will not work under the WebLogic 6.0 beta.
>
> In summary, this particular issue has turned out to be a container-specific
> item.  However, it has highlighted the fact that Struts is being contemplated
> for use in large scale, distributed, application servers -- and that Struts
> should make every effort to use Serializable servlet context (application scope)
> attributes where possbile.  As a result of this, I'm undertaking a review of all
> the objects that the core Struts framework (as opposed to the example
> application) stores in servlet context attributes.  Most of them can be easily
> made Serializable -- the hard one is the MessageResources class, which utilizes
> Java's underlying support for resource bundles.  Unfortunately, these classes do
> *not* implement Serializable, so this class needs to be re-implemented.  Work to
> do this is in progress.
>
> Craig McClanahan