Actually the enum is on the attribute names which is always an enum of
String:

Enumeration enum = context.getAttributeNames();
while(enum.hasMoreElements()){
  String name = (String) enum.nextElement();
  Object attribute = context.getAttribute(name);
 ...
}


> >     Enumeration enum = context.getAttributeNames();
> >     while (enum.hasMoreElements()) {
> >       String name[] = (String[]) enum.nextElement();

> -----Original Message-----
> From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
> Sent: Friday, July 05, 2002 2:24 PM
> To: Tomcat Users List
> Subject: Re: Garbage in Context Attributes
> 
> 
> 
> 
> On Fri, 5 Jul 2002, A. Alfred Ayache wrote:
> 
> > Date: Fri, 05 Jul 2002 17:05:46 -0400
> > From: A. Alfred Ayache <[EMAIL PROTECTED]>
> > Reply-To: Tomcat Users List <[EMAIL PROTECTED]>
> > To: Tomcat Users List <[EMAIL PROTECTED]>
> > Subject: Re: Garbage in Context Attributes
> >
> > Craig:
> >
> > You know, I had tried that, and this is the first few lines of the
> > exception I got back:
> >
> > java.lang.ClassCastException: java.lang.String
> >     at ServerSnoop.service(ServerSnoop.java:23)
> >     at
> > 
> org.apache.catalina.servlets.InvokerServlet.serveRequest(Invok
> erServlet.java:450)
> >     at
> > 
> org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServl
> et.java:180)
> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> >     at
> > 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> er(ApplicationFilterChain.java:247)
> >
> > Line 23 of ServerSnoop.java looks like this:
> >
> >     Enumeration enum = context.getAttributeNames();
> >     while (enum.hasMoreElements()) {
> >       String name[] = (String[]) enum.nextElement();
> >       for (int i=0; i < name.length; ++i) {
> >             out.println("  context.getAttribute(\"" + name 
> + "[" + i + "]\"):
> > " +
> >                      context.getAttribute(name[i]));
> >       }
> >     }
> >
> > It's the line with the String[] cast.
> >
> 
> Your code would only work if *every* servlet context 
> attribute is a string
> array, which is not the case.  So you will naturally get a class cast
> exception on anything that is not.
> 
> 
> > Thanks for your help!
> > - Alfred
> >
> 
> Craig
> 
> 
> > "Craig R. McClanahan" wrote:
> > >
> > > On Thu, 4 Jul 2002, Cor Hofman wrote:
> > >
> > > > Date: Thu, 4 Jul 2002 08:40:34 +0200
> > > > From: Cor Hofman <[EMAIL PROTECTED]>
> > > > Reply-To: Tomcat Users List <[EMAIL PROTECTED]>
> > > > To: Tomcat Users List <[EMAIL PROTECTED]>
> > > > Subject: RE: Garbage in Context Attributes
> > > >
> > > > Alfred,
> > > >
> > > > I am not familiar with the example you mention, but the 
> contents of your
> > > > attributes is not garbage.
> > > >
> > > > The WELCOME_FILES contains a String array.
> > > > The resources contains a class named
> > > > org.apache.naming.resource.ProxyDirContext.
> > > >
> > >
> > > As the "org.apache.xxx" prefix implies, these attributes 
> are created by
> > > Tomcat for its own purposes.  It's perfectly legal for 
> the container to
> > > store its own servlet context attributes.  To avoid name 
> clashes, the same
> > > conventions as used for fully qualified classes (reversed 
> domain name) are
> > > appropriate here.
> > >
> > > > Cor.
> > > >
> > >
> > > Craig
> > >
> > > > -----Original Message-----
> > > > From: A. Alfred Ayache [mailto:[EMAIL PROTECTED]]
> > > > Sent: Wednesday, July 03, 2002 22:19
> > > > To: Tomcat Users List
> > > > Subject: Garbage in Context Attributes
> > > >
> > > >
> > > > Just ran ServerSnoop from the Hunter book, and in the
> > > > context.getAttributeNames() I get two attributes with 
> partial garbage:
> > > >
> > > > context.getAttributeNames():
> > > >   context.getAttribute("org.apache.catalina.WELCOME_FILES"):
> > > > [Ljava.lang.String;@baa466
> > > >   context.getAttribute("org.apache.catalina.resources"):
> > > > org.apache.naming.resources.ProxyDirContext@7f409c
> > > >
> > > > Anyone know why this is happening?
> > > >
> > > > Thanks,
> > > > --
> > > > A. Alfred Ayache,              | 20 years' experience
> > > > President, The Last Byte, Inc. | Testimonials
> > > > Custom software par excellence | Links
> > > > http://www.lastbyte-inc.com    | Free Software
> > > >
> > > > --
> > > > To unsubscribe, e-mail:
> > > > <mailto:[EMAIL PROTECTED]>
> > > > For additional commands, e-mail:
> > > > <mailto:[EMAIL PROTECTED]>
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > --
> > > > To unsubscribe, e-mail:   
> <mailto:[EMAIL PROTECTED]>
> > > > For additional commands, e-mail: 
> <mailto:[EMAIL PROTECTED]>
> > > >
> > > >
> > >
> > > --
> > > To unsubscribe, e-mail:   
> <mailto:[EMAIL PROTECTED]>
> > > For additional commands, e-mail: 
> <mailto:[EMAIL PROTECTED]>
> >
> > --
> > A. Alfred Ayache,              | 20 years' experience
> > President, The Last Byte, Inc. | Testimonials
> > Custom software par excellence | Links
> > http://www.lastbyte-inc.com    | Free Software
> >
> > --
> > To unsubscribe, e-mail:   
> <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail: 
> <mailto:[EMAIL PROTECTED]>
> >
> >
> 
> 
> --
> To unsubscribe, e-mail:   
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: 
> <mailto:[EMAIL PROTECTED]>
> 

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to