Note that there are some explanatory texts on larger screens.

plurals
  1. POMethod not found exception on MethodExpression.invoke()
    primarykey
    data
    text
    <p>I have a need to programmatically call/invoke a method in one of my backing beans. I've looked at several examples, and from what I can see, this "should" work.</p> <p><strong>My code:</strong></p> <pre><code>UIData data = (UIData)component; fc = FacesContext.getCurrentInstance(); elc = fc.getELContext(); elFactory = fc.getApplication().getExpressionFactory(); mexp = elFactory.createMethodExpression(elc, data.getValueExpression("value").getExpressionString(), Result.class, new Class[]{}); Object methodResult = mexp.invoke(elc, null); </code></pre> <p>The "data.getValueExpresssion("value").getExpressionString() returns the string:</p> <pre><code>#{reports.customer} </code></pre> <p><strong>Info about the bean I'm calling</strong> (<em>don't know if these are relevant</em>):<br> Class's managed bean name is "report"<br> Class is in Session-scope<br> Class implements Serializable<br> The access modifier of the method I'm calling is<br> There are no parameters in the method signature </p> <p><strong>Method I'm trying to invoke:</strong></p> <pre><code>public Result getCustomer() { Result result = null; try { ...perform database call } catch (Exception e) { log.error(e); } return result; } </code></pre> <p><strong>Stack-Trace Excerpt</strong></p> <pre><code>SEVERE: javax.el.MethodNotFoundException: Method not found: com.npp.beans.reports.SharebackReportsBean@1ebf0d3.customer() javax.faces.el.EvaluationException: javax.el.MethodNotFoundException: Method not found: com.npp.beans.reports.SharebackReportsBean@1ebf0d3.customer() at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98) at javax.faces.component.UICommand.broadcast(UICommand.java:311) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308) ... Caused by: javax.el.MethodNotFoundException: Method not found: com.npp.beans.reports.SharebackReportsBean@1ebf0d3.customer() at com.sun.el.util.ReflectionUtil.getMethod(ReflectionUtil.java:155) at com.sun.el.parser.AstValue.invoke(AstValue.java:231) at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297) at com.npp.business.TableToExcelManager.initExcelWorker(TableToExcelManager.java:247) at com.npp.beans.reports.SharebackReportsBean.exportToExcel(SharebackReportsBean.java:439) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.el.parser.AstValue.invoke(AstValue.java:234) at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297) at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:84) ... 26 more Mar 23, 2011 11:29:34 AM com.sun.faces.lifecycle.InvokeApplicationPhase execute WARNING: #{reports.exportToExcel}: javax.el.MethodNotFoundException: Method not found: com.npp.beans.reports.SharebackReportsBean@1ebf0d3.customer() javax.faces.FacesException: #{reports.exportToExcel}: javax.el.MethodNotFoundException: Method not found: com.npp.beans.reports.SharebackReportsBean@1ebf0d3.customer() at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:114) at javax.faces.component.UICommand.broadcast(UICommand.java:311) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) </code></pre> <p>Any help on this is greatly appreciated!</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload