you're right.... Websphere 4.0 is a pain to work with. I did get a struts
application running on 3.5.3 but not on any later version.
Calabrese, Jason" wrote:
> Why can't IBM keep up. I don't think I'd ever recommended Websphere or
> any other IBM java application.
>
> -----Original Message-----
> From: Boulatian, Misak [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, July 25, 2001 8:07 AM
> To: [EMAIL PROTECTED]
> Subject: RE: Struts on IBM WAS 4.0 - Error removing attributes from
> reques t sc ope!
>
> It seems like you have the same problem as I was having with Powertier
> app
> server. The solution was that
> the powertier current release was coming with an older jasper libraries
> (jsp
> engine) but struts is using the newer
> ones. I hope this helps.
> Thanks
> Misak
>
> -----Original Message-----
> From: Pravin George [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, July 24, 2001 7:26 AM
> To: [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED]
> Subject: RE: Struts on IBM WAS 4.0 - Error removing attributes from
> reques t sc ope!
>
> Hi everyone,
>
> I wanted to clarify the status of Struts and Websphere 4
> compatability. As a business partner to IBM, we are on the beta testing
> program for Websphere 4.0 . This particular issue was brought to their
> attention a couple of weeks ago. Last week we received word that it has
> been fixed in the latest beta build and will not be an issue in the
> final GA release.
>
> Pravin George,
> Software Engineer,
> eBuilt Inc. ,
> Irvine, CA 92614.
>
> RE: Struts on IBM WAS 4.0 - Error removing attributes from
> reques t sc ope!
> Date:
> Tue, 24 Jul 2001 13:16:48 -0700
> From:
> "Calabrese, Jason" <[EMAIL PROTECTED]>
> Reply-To:
> [EMAIL PROTECTED]
> To:
> "'[EMAIL PROTECTED]'"
> <[EMAIL PROTECTED]>
>
> I'm running struts on Websphere 3.5.4 and had similar problems.
>
> This is the response I got.
>
> > Check this out..
> >
> http://www.mail-archive.com/struts-user@jakarta.apache.org/msg10964.html
>
> > And..
> > Sure thing - I already sent it but the list refused it due to its file
>
> size.
> > As an alternative, I'll put it up on my personal FTP space and anyone
> who
> > wants it can download it from there! :)
>
> > Struts.jar with Form tag modifications:
> http://www.enfused.com/struts.jar
>
> -----Original Message-----
> From: Mark Wilson [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, July 24, 2001 1:07 PM
> To: '[EMAIL PROTECTED]'
> Subject: Struts on IBM WAS 4.0 - Error removing attributes from request
> sc ope!
>
> Hello, thanks for you're attention.
>
> I am deploying the struts-example app on IBM Websphere App Server 4.0
> and
> receive an IllegalArgumentException - Can't remove attribute from
> request
> scope.
>
> the situation:
>
> I have drilled into the problem and discovered that IBM is using a
> significantly different implementation of the class,
> org.apache.jasper.runtime.PageContextImpl. Their class alters the logic
>
> of
> removing attributes using the methods removeAttribute(String s, int i)
> and
> removeAttribute(String s).
>
> I have included the code in the next section of the e-mail. In summary,
>
> using WAS 4.0, attributes are not removed from request scope.
>
> This conflicts most directly with the struts framework class,
> org.apache.struts.taglib.html.FormTag. FormTag calls
> pageContext.removeAttribute(Constants.BEAN_KEY,
> PageContext.REQUEST_SCOPE)
> and pageContext.removeAttribute(Constants.FORM_KEY,
> PageContext.REQUEST_SCOPE) within the doEndTag() method.
>
> Either of these method calls will generate an IllegalArgumentException
> on
> WAS 4.0.
>
> the code (more or less):
>
> org.apache.jasper.runtime.PageContextImpl (note: not the same code as
> used
> in tomcat's implementation...)
>
> public void removeAttribute(String s, int i)
> {
> switch (i)
> {
> case PAGE_SCOPE:
> pageScopeAttributes.remove(s);
> break;
>
> case REQUEST_SCOPE:
> throw new IllegalArgumentException("Can't remove Attributes
> from
> request scope");
>
> case SESSION_SCOPE:
> if (session == null)
> throw new IllegalArgumentException("Can't access
> SESSION_SCOPE without an HttpSession");
> theSession.removeAttribute(s);
> break;
>
> case APPLICATION_SCOPE:
> theContext.removeAttribute(s);
> break;
> }
> }
>
> // and ...
>
> public void removeAttribute(String s)
> {
> pageScopeAttributes.remove(s);
> }
>
> // (pageScopeAttributes is a Hashtable of objects stored at Page
> scope
> only!)
>
> a partial solution:
>
> Replacing the removeAttribute(String s, int i) method calls with
> removeAttribute(String s) within the struts class, FormTag.doEndTag()
> relieves the exception, but on WAS 4.0, it will not remove the
> attribute!
> (in fact, only attributes found in page scope will be removed when the
> method, removeAttribute(String s) is called.)
>
> testing results:
>
> Even though the attributes weren't removed from the request scope, those
>
> attributes were replaced by new objects the next time. This didn't seem
>
> to
> affect the observable behavior of the struts example application.
>
> the question(s):
>
> We really, really want to use struts on WAS 4.0. There seems to be some
>
> logic within struts that relates to "null" attributes.
>
> What are the architectural implications of running an app built upon
> struts
> that will never have it's attributes removed from request scope?
>
> If there are implications, are there ways to work around the problems?
>
> Is it feasible to extend the struts framework to specifically target the
>
> changes noted in WAS 4.0? If so, do you have any recommendations how to
>
> go
> about doing this?
>
> Thank you very much,
> Mark