Looks like a bug in the EL impl! Have you tried reformatting the expression (like adding spaces and/or brackets)?
> Can I use another EL impl with jetty? For sure, check out http://wiki.apache.org/myfaces/HowToEnableEl22 to see how a el-impl can be changed. FYI: this works since MyFaces core 1.2.7! Regards, Jakob 2011/4/11 Mike Kienenberger <[email protected]>: > Is it possible that it's a conflict between Jetty 7 and the facelets > el-ri.jar? > > I know at one point, we moved the facelets el-api.jar into a > build-only classpath, but I think we still have the el-ri.jar in the > deployment library path. > > > On Mon, Apr 11, 2011 at 10:55 AM, Michael Heinen <[email protected]> > wrote: >> This is a follow-up discussion for "JSF application very slow with HTTPS" >> in order to no hijack my own thread. >> >> I want to compare the performance of my app with tomcat and jetty. >> Environment: >> Facelets >> myFaces 1.2.9 >> tomahawk12_1.1.10 >> richfaces 3.3.3 >> >> >> The app runs fine with all Tomcat 6 versions. >> Unfortunately I cannot access it with various jetty versions (7.3.x, 7.2.x, >> 7.1.X, 6.1.22) because nested EL expressions are not working. >> >> Stack from 6.1.22 (edited): >> >> com.sun.facelets.tag.TagAttributeException: /pages/foo.xhtml @43,114 >> title="#{MyController.myButtonEnabled?msgs['key1']:MyController.myButton2Enabled?msgs['key3']:msgs['key4']}" >> Error Parsing: >> #{MyController.myButtonEnabled?msgs['key1']:MyController.myButton2Enabled?msgs['key3']:msgs['key4']} >> at >> com.sun.facelets.tag.TagAttribute.getValueExpression(TagAttribute.java:259) >> at >> com.sun.facelets.tag.jsf.ComponentRule$ValueExpressionMetadata.applyMetadata(ComponentRule.java:69) >> at com.sun.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:36) >> at >> com.sun.facelets.tag.MetaTagHandler.setAttributes(MetaTagHandler.java:76) >> at >> com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:165) >> at >> com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) >> at >> com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:360) >> at >> com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:190) >> at >> com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) >> at >> com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:360) >> at >> com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:190) >> at >> com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:360) >> at >> com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:190) >> at >> com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) >> at >> com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:360) >> at >> com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:190) >> at >> com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) >> at >> com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:360) >> at >> com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:190) >> at >> com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) >> at >> com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:124) >> at >> com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) >> at >> com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:39) >> at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248) >> at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294) >> at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273) >> at >> com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:140) >> at com.sun.facelets.tag.ui.IncludeHandler.apply(IncludeHandler.java:66) >> at >> com.sun.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:64) >> at >> com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:136) >> at >> com.sun.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:337) >> at >> com.sun.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:307) >> at com.sun.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:68) >> at >> com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) >> at >> com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:360) >> at >> com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:190) >> at >> com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) >> at >> com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:360) >> at >> com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:190) >> at >> com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) >> at >> com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:124) >> at >> com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) >> at >> com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:39) >> at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248) >> at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294) >> at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273) >> at >> com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:140) >> at >> com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:116) >> at >> com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) >> at >> com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:39) >> at com.sun.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:95) >> at >> com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:596) >> at >> com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:651) >> at >> org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100) >> at >> org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176) >> at >> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41) >> at >> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140) >> at >> org.apache.myfaces.custom.ppr.PPRLifecycleWrapper.render(PPRLifecycleWrapper.java:84) >> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:187) >> at com.foo.ServletWrapper.service(ServletWrapper.java:125) >> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) >> at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206) >> at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) >> at >> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) >> at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) >> at >> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:392) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) >> at com.foo.MyFilter4.doFilter(MyFilter4.java:219) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) >> at com.foo.MyFilter3.doFilter(MyFilter3.java:110) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) >> at com.foo.MyFilter2.doFilter(MyFilter2.java:54) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) >> at com.foo.MyFilter1.doFilter(MyFilter1.java:80) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) >> at >> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) >> at >> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) >> at >> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) >> at >> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) >> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) >> at >> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) >> at >> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) >> at >> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) >> at org.mortbay.jetty.Server.handle(Server.java:326) >> at org.mortbay.jetty.HttpConnection.handleRequest(H >> [2011-04-11 16:27:22,837] 4171469@qtp-3373197-7 [ERROR] [iaibuy3qqsph] >> debug.LoggingOutputStream flush: ttpConnection.java:542) >> at >> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938) >> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) >> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) >> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) >> at >> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) >> at >> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) >> Caused by: javax.el.ELException: Error Parsing: >> #{MyController.myButtonEnabled?msgs['key1']:MyController.myButton2Enabled?msgs['key3']:msgs['key4']} >> at >> com.sun.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:171) >> at com.sun.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:188) >> at >> com.sun.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:232) >> at >> com.sun.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:92) >> at >> com.sun.facelets.tag.TagAttribute.getValueExpression(TagAttribute.java:256) >> ... 92 more >> Caused by: com.sun.el.parser.ParseException: Encountered ":MyController" at >> line 1, column 44. >> Was expecting one of: >> "." ... >> "[" ... >> ":" ... >> ">" ... >> "gt" ... >> "<" ... >> "lt" ... >> ">=" ... >> "ge" ... >> "<=" ... >> "le" ... >> "==" ... >> "eq" ... >> "!=" ... >> "ne" ... >> "&&" ... >> "and" ... >> "||" ... >> "or" ... >> "*" ... >> "+" ... >> "-" ... >> "/" ... >> "div" ... >> "%" ... >> "mod" ... >> >> at com.sun.el.parser.ELParser.generateParseException(ELParser.java:1664) >> at com.sun.el.parser.ELParser.jj_consume_token(ELParser.java:1544) >> at com.sun.el.parser.ELParser.Choice(ELParser.java:229) >> at com.sun.el.parser.ELParser.Expression(ELParser.java:208) >> at com.sun.el.parser.ELParser.DeferredExpression(ELParser.java:146) >> at com.sun.el.parser.ELParser.CompositeExpression(ELParser.java:74) >> at >> com.sun.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:139) >> ... 96 more >> >> Can I use another EL impl with jetty? >> >> Regards, >> Michael >> > -- Jakob Korherr blog: http://www.jakobk.com twitter: http://twitter.com/jakobkorherr work: http://www.irian.at

