You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by "Brugge, John" <jb...@Kraft.com> on 2001/07/25 19:27:02 UTC

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

Yes, WAS 4.0 is a big step forward in usability. However, if you look
closely at the struts.jar file that is ships with, it's Struts 0.5.

That notwithstanding, the console looks like a pretty sophisticated app.
Probably not trivial for them to move it to Struts 1.0.

John
> -----Original Message-----
> From:	Assenza, Chris [SMTP:cassenza@Accessdc.com]
> Sent:	Wednesday, July 25, 2001 11:22 AM
> To:	'struts-user@jakarta.apache.org'
> Subject:	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