2 Replies Latest reply on Feb 26, 2007 7:01 PM by Gavin King

    Seam EL extension configuration problem

    Stuart Robertson Novice

      I'm using Seam 1.1.7 and facelets, and it appears I'm getting the vanilla EL interpreter rather than Seam's enhanced version.

      For instance, when I use an expression like this:

       #{FeedImport.generalErrors.size()}
      


      I get an parse exception like this:

      Caused by: com.sun.el.parser.ParseException: Encountered "(" at line 1, column 32.
      Was expecting one of:
       "}" ...
       "." ...
       "[" ...
       ">" ...
      .... (more stuff like this)
      
       at com.sun.el.parser.ELParser.generateParseException(ELParser.java:1651)
       at com.sun.el.parser.ELParser.jj_consume_token(ELParser.java:1531)
       at com.sun.el.parser.ELParser.DeferredExpression(ELParser.java:134)
       at com.sun.el.parser.ELParser.CompositeExpression(ELParser.java:61)
       at com.sun.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:103)
      


      Section 24.1 of the guide explains that I need to have

       <application>
       <view-handler>org.jboss.seam.ui.facelet.SeamFaceletViewHandler</view-handler>
       </application>
      


      in faces-config.xml, which I do. And using a debugger I verified that this is getting loaded and appears to register Seam's EL compiler - though from the exception it looks like the vanilla EL resolver is being used.

      Any suggestions?

      Thanks!

        • 1. Re: Seam EL extension configuration problem
          Stuart Robertson Novice

          Hmm. Just in case more of the stacktrace would be helpful, here's more. The stacktrace from my initial post was the root cause of this one.

          SEVERE: Error Rendering View[/members/ingest-errors.xhtml]
          javax.el.ELException: Error Parsing: #{FeedImport.generalErrors.size()}
           at com.sun.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:140)
           at com.sun.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:157)
           at com.sun.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:201)
           at com.sun.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:74)
           at org.jboss.seam.ui.facelet.SeamExpressionFactory.createValueExpression(SeamExpressionFactory.java:107)
           at com.sun.facelets.el.ELText$ELTextVariable.apply(ELText.java:161)
           at com.sun.facelets.el.ELText$ELTextComposite.apply(ELText.java:142)
           at com.sun.facelets.compiler.TextInstruction.apply(TextInstruction.java:56)
           at com.sun.facelets.compiler.UIInstructionHandler.apply(UIInstructionHandler.java:85)
           at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
           at com.sun.facelets.tag.ui.DefineHandler.apply(DefineHandler.java:58)
           at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:128)
           at com.sun.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:306)
           at com.sun.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:279)
          


          • 2. Re: Seam EL extension configuration problem
            Gavin King Master

            That is a value expression. The parameters are only usable in a method expression.

            BTW, we will eventually get rid of this hack and have a whole jboss-el project (Jacob has already started work on this), but we won't have it tomorrow.