> From: Dale Ogilvie [mailto:dale_ogil...@trimble.com] 
> Subject: RE: ClassCastException org.apache.jasper.runtime.ELContextImpl 
> cannot be cast to org.apache.jasper.el.ELContextImpl

> That says to me that app1 already has an instance of 
> org.apache.jasper.runtime.ELContextImpl which it is 
> trying to cast to the tomcat version.

No, that's not what's going on.  A class extending the abstract class ELContext 
is typically supplied *only* by the servlet container, not by any webapp.  
Since you have included it in app2 (inadvertently or not), it has superseded 
the one included with Tomcat, which would normally be loaded with a shared 
classloader, as part of the Jasper environment.  When app1 is referenced later, 
Jasper encounters an error because its expected ELContextImpl can't be accessed.

> So your statement that "Tomcat prevents a class loaded in app2 from being 
> visible in app1" seems to be false.

Nope, that's exactly what's going on.  Your ELContextImpl class in app2 has 
disrupted Jasper being able to process expression language constructs in app1, 
as Mark stated.

What Tomcat might be able to do is prevent use of any webapp classes extending 
ELContext, but I haven't looked to see how hard that would be, or if the spec 
allows such a restriction.  The proper thing to do is not build a webapp that 
doesn't play well with others.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY 
MATERIAL and is thus for use only by the intended recipient. If you received 
this in error, please contact the sender and delete the e-mail and its 
attachments from all computers.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to