1. Create a managed bean ,define an int field
package coreservlets;

import javax.faces.bean.*;

@ManagedBean
public class SpanishColorMapper extends ColorMapper {
    private int age;
  public SpanishColorMapper() {
    super("Spanish", "rojo", "anaranjado", "amarillo",
          "verde", "negro", "blanco");
  }
  public int calYear(int x) {
      return age + x;
  }
  public int getAge() {
      return age;
  }
  public void setAge(int x) {
      age = x;
  }
}

2.Direclty call calYear method in xhtml like:
<td>#{spanishColorMapper.calYear(5)}</td>
but  it's reported that :
java.lang.NoSuchMethodException:
coreservlets.SpanishColorMapper.calYear(java.lang.Long)

Caused by:
java.lang.NoSuchMethodException -
coreservlets.SpanishColorMapper.calYear(java.lang.Long)

javax.faces.FacesException: java.lang.NoSuchMethodException:
coreservlets.SpanishColorMapper.calYear(java.lang.Long)
        at 
org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.wrap(ExceptionHandlerImpl.java:241)

        at 
org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:156)
        at 
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:258)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)

        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)

        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:163)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)

        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:556)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:401)

        at 
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:281)
        at 
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
        at 
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1568)

        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)

Caused by: java.lang.NoSuchMethodException:
coreservlets.SpanishColorMapper.calYear(java.lang.Long)
        at java.lang.Class.getMethod(Class.java:1605)
        at javax.el.BeanELResolver.invoke(BeanELResolver.java:377)
        at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:137)

        at org.apache.el.parser.AstValue.getValue(AstValue.java:159)
        at 
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:192)
        at 
org.apache.myfaces.view.facelets.el.ELText$ELTextVariable.writeText(ELText.java:213)

        at 
org.apache.myfaces.view.facelets.compiler.TextInstruction.write(TextInstruction.java:48)
        at 
org.apache.myfaces.view.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:46)
        at 
org.apache.myfaces.view.facelets.compiler.UILeaf.encodeAll(UILeaf.java:214)

        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:614)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:614)
        at 
org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1155)

        at 
org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:263)
        at 
org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:85)
        at 
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239)

        ... 16 more


Seems by default it's set as Long.

Is this a bug of EL implementation? Parse number as Long, not type of
ManagedBean defined?

-- 
viola

Reply via email to