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