You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by "Assenza, Chris" <ca...@Accessdc.com> on 2001/07/25 18:21:46 UTC

RE: Struts on IBM WAS 4.0 - Error removing attributes from reques t sc ope!

I had no problems with our test run with WAS 4.0 using the modified
struts.jar I posted - heck the console is built with Struts. :-P

Frankly, I feel like WAS 4.0 is a dream-come true as far as usability and
administration.  Yeah, Java isn't up to spec, but what else is new.  At
least it is easier to maintain. 

Our struts app deployed flawlessly from the EAR file without any extra
manipulation from me outside of using their Application Assembly tool (ie.
no moving WEB-INF, no pulling out DTD's, nadda). :D

Be that as it may, our app didn't work 100%, but I am pretty sure that was
an unrelated issue (IIS wasn't configured properly).

Chris

-----Original Message-----
From: Pravin George [mailto:pgeorge@ebuilt.com]
Sent: Wednesday, July 25, 2001 5:13 AM
To: struts-user@jakarta.apache.org
Subject: Re: Struts on IBM WAS 4.0 - Error removing attributes from
request sc ope!


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:misak@vantra.com]
> Sent: Wednesday, July 25, 2001 8:07 AM
> To: struts-user@jakarta.apache.org
> 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:pgeorge@ebuilt.com]
> Sent: Tuesday, July 24, 2001 7:26 AM
> To: struts-user@jakarta.apache.org
> Cc: jcalabrese@devcor.com
> 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" <jc...@devcor.com>
>  Reply-To:
>           struts-user@jakarta.apache.org
>        To:
>           "'struts-user@jakarta.apache.org'"
> <st...@jakarta.apache.org>
>
> 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:Mark.Wilson@valtech.com]
> Sent: Tuesday, July 24, 2001 1:07 PM
> To: 'struts-user@jakarta.apache.org'
> 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