2 Replies Latest reply on Feb 26, 2007 7:01 PM by gavin.king

    Seam EL extension configuration problem

    stu2

      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
          stu2

          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

            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.