RE: WEBSPHERE 3.5.4 and STRUTS 1.0: cant remove attributes from request scope

2001-08-07 Thread Mark Wilson

WAS 4.0 so far is no different, you will get the same error.

The problem was fixed, by changing the code in
org.apache.struts.taglib.html.FormTag per this solution posted a while ago:
http://www.mail-archive.com/struts-user@jakarta.apache.org/msg10964.html

There is another FormTag class, org.apache.struts.taglib.FormTag.  Make sure
you got the right one, and rebuilt correctly?  This solution has worked
successfully repeatedly.

The problem lies with the IBM implementation of the org.apache.jasper
package. It behaves differently than the tomcat reference implementation, in
that it will always throw an exception when specifically removing attributes
from request scope.

Mark

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]
Sent: Tuesday, August 07, 2001 10:18 AM
To: [EMAIL PROTECTED]
Subject: WEBSPHERE 3.5.4 and STRUTS 1.0: cant remove attributes from
request scope


Hello,

I write an application using struts.
I have a first JSP page with a link to a second JSP page which contains a
form.
The link looks like:
html:link href=epologin.do?cmd=Createbean:message key
=index.login//html:link

I get the first page with the link. But, when I click on it, I get the
following message:

...cant remove Attributes from request scope...

I've seen a lot of mails in the struts-user list about the doEndTag
method; so I tried to change the code of the FormTag class (in
/taglib/html).
It changes nothing.

So, if anyone has a solution...

A few questions:
Where does the problem come from (Struts, Websphere)?
Is there any improvement with Websphere 4.0?

Thanks for your help.
 MIKAEL




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

2001-07-25 Thread Mark Wilson

Hi John (or others using struts on IBM WAS),

I was wondering if you have come accross any other negative implications
besides the nasty show stopping Exception from using struts on WAS.
(work-around provided earlier in thread) 

In particular I am concerned that struts makes calls to PageContext -
removeAttribute(String s), while in the Jasper code used by IBM, this will
remove page scope attributes only.  Primarily, I am concerned with the
struts class, taglib.logic.IterateTag, which appears to be written to
iterate through attributes at any scope. 

Any heads-up about struts on IBM is much appreciated.

Thanks a lot,
Mark

-Original Message-
From: Brugge, John [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, July 25, 2001 9:26 AM
To: '[EMAIL PROTECTED]'
Subject: RE: Struts on IBM WAS 4.0 - Error removing attributes from
reques t sc ope!


Pardon my skepticism, but from all appearances, the WAS 4.0 GA release is
out (nothing on the IBM WebSphere site says that the 4.0 you can now
download is beta), and this particular issue is *not* resolved. The
antiquated version of Jasper is still included. And from the response to my
question about this on this list a month ago or so, just dropping in a new
Jasper is not something that's likely to happen quickly. If this issue was
just brought to their attention a couple of weeks ago (meaning that they
didn't know about it), I wouldn't hold my breath on a quick resolution.

I'd love to see the fix appear in a fixpack (and soon) but we tried out 4.0
as soon as it was released the end of June, primarily to see if this issue
was resolved, and were disappointed.

John

 -Original Message-
 From: Pravin George [SMTP:[EMAIL PROTECTED]]
 Sent: Tuesday, July 24, 2001 9: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