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

Reply via email to