Hi Leon --
I had something similar happen, and it occours when I recompile the
bean and then try to access it without restarting Tomcat.
My *guess* is that classes that are reloaded (when they have been
loaded once then recompiled) have a different classloader.
Anyhow, restarting Tomcat has always resolved that problem for me.
Hope that helps.
Anne
> Leon Palermo wrote:
>
> Hello All,
>
> Let me preface this email by saying that I only put 'EXPERTS ONLY' so
> you hot shot programmers would actually read this email. If you are
> reading this, it worked!
>
> I have an odd problem that I was hoping someone could help with.
>
> I have a servlet that all jsps in the system are dispatched from. I
> create a bean in this servlet and add it to the request object like
> so...
>
> com.blah.blah.MyBean abean = (com.blah.blah.MyBean)
> Beans.instantiate(this.getClass().getClassLoader(),"com.blah.blah.MyBean");
> ...
> request.setAttribute("thename", abean);
>
> I have also tried this to create the bean....
>
> com.blah.blah.MyBean abean = new com.blah.blah.MyBean();
>
> and also tried to place the object in the request like so....
>
> pageContext.setAttribute("thename", abean,
> PageContext.REQUEST_SCOPE);
>
> Anywho, I then have the following in my jsp page...
>
> <jsp:useBean id="thename" scope="request"
> class="com.blah.blah.MyBean" />
>
> I get a java.lang.ClassCastException from the jsp. So, I decided to
> do a little error hunting in a jsp using the following code...
>
> <%try{
> System.out.println(request.getAttribute("thename") == null);
> System.out.println(request.getAttribute("thename") instanceof
> com.blah.blah.MyBean);
>
> System.out.println(request.getAttribute("thename").getClass().getName());
>
>
>System.out.println(zedak.docworx.jspsupport.beans.BrandBean)request.getAttribute("thename"));
> }catch (ClassCastException e){
> System.out.println("CLASS CAST EXCEPTION!");
> }
> %>
>
> The results of the code is as follows:
>
> false
> false
> com.blah.blah.MyBean
> CLASS CAST EXCEPTION!
>
> So, the attribute is present in the request object, it is not an
> instance of 'com.blah.blah.MyBean'; but the object's class name is
> 'com.blah.blah.MyBean'. Does anyone have an idea what is going on?
> How can the object's class name be 'com.blah.blah.MyBean' but not be
> able to cast to 'com.blah.blah.MyBean'?
>
> Thanks in advance!
>
> Leon Palermo