The "split API from implementation" approach that Paul suggested earlier seems to work. respository.jboss.com is already hosting a JUEL build that splits the implementation jar from the interface jar. So the approach would be:
1) Depend on juel-api and juel-impl from repository.jboss.com. 2) Mark juel-impl as a normal dependency, and juel-api as a "provided" dependency 3) maven won't automatically bundle juel-api into the war files. 4) If folks are using a servlet engine that provides juel-api or equivalent, things just work. 5) If folks are using a servlet engine that does not provide juel-api, they need to bundle up juel-api themselves. I think this will make tomcat6 integration easier as well: http://cwiki.apache.org/confluence/pages/viewpage.action?pageId=105008#Index-HowdoIrunShindigonTomcat6underEclipse%3F I'll send a code review and submit tomorrow if no one objects. Cheers, Brian On Fri, May 1, 2009 at 10:42 AM, Ian Boston <[email protected]> wrote: > > On 1 May 2009, at 17:29, Brian Eaton wrote: > >> On Fri, May 1, 2009 at 2:30 AM, Ian Boston <[email protected]> wrote: >>> >>> Have you tried setting the context classloader to the webapp classloader >>> around that method call ? >> >> I don't see a method call to fix, unfortunately. This happens when >> jetty tries to compile a jsp, there is no shindig code in the stack >> until too late. >> >> I think this is the flow. First: >> - jetty starts shindig with webapp class loader >> - shindig loads ExpressionFactory and ExpressionFactoryImpl with web >> app class loader >> >> Later: >> - jetty starts JSP compiler with context class loader (system class >> loader, maybe?) >> ***bug*** load ExpressionFactory with context class loader >> - switch to web app class loader >> - JSP compiler calls ExpressionFactory.newInstance >> - newInstance finds ExpressionFactoryImpl from web app class loader >> - then there's a cast to the wrong version of ExpressionFactory.class, >> and we die. >> >> If I'm right, I think we've found a jetty bug. I might be wrong. I >> haven't found the right version of the jetty code to step through to >> see what's going on. > > > Yes sounds like a bug with the jsp compiler. > What happens in Tomcat with the same glassfish el jar in shared ? > The fix from the earlier version might just have been due to no el jar in > shared ? > Ian > > >

