title: javax.el.MethodNotFoundException: Method not found: JSF
body: <p>I am getting error while trying a simple application with JSF.</p>
  
  <pre><code>javax.el.MethodNotFoundException: Method not found: com.jsf.training.beans.TravelBean@4b6b8628.travelInfo()
  at org.apache.el.util.ReflectionUtil.getMethod(ReflectionUtil.java:245)
  at org.apache.el.parser.AstValue.invoke(AstValue.java:271)
  at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
  at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:149)
  at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
  at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:818)
  at javax.faces.component.UICommand.broadcast(UICommand.java:300)
  at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
  at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
  at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
  at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
  at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
  at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
  at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)
  at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)
  at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
  at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  at java.lang.Thread.run(Unknown Source)
  </code></pre>
  
  <p>My managed bean is :</p>
  
  <pre><code>@ManagedBean (name="travelBean")
  @SessionScoped
  public class TravelBean {
  
  private int index = 0;
  private String source;
  private String destination;
  private Date date;
  java.sql.Date sqlDate;
  private boolean visible = false;
  
  public boolean isVisible() {
      return visible;
  }
  public void setVisible(boolean visible) {
      this.visible = visible;
  }
  public TravelBean() {
  
  }
  public String getSource() {
      return source;
  }
  public void setSource(String source) {
      this.source = source;
  }
  public String getDestination() {
      return destination;
  }
  public void setDestination(String destination) {
      this.destination = destination;
  }
  public Date getDate() {
      return date;
  }
  public void setDate(Date date) {
      this.date = date;
  }
  
  public int getIndex() {
      return index;
  }
  
  public void setIndex(int index) {
      this.index = index;
  }
  
  public void getDateInSql() {
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      sdf.format(date);
      sqlDate = new java.sql.Date(date.getTime());
  }
  public void getTravelInfo() throws SQLException {
      setVisible(true);
      /*SearchServiceImpl search = new SearchServiceImpl();
      search.searchTrainsService(travelBean);*/
      System.out.println("********** in travel Bean :" +source +destination +date);
      TrainBean tb = new TrainBean();
      tb.getTrainsList(source,destination,sqlDate);
  }
  </code></pre>
  
  <p>and my xhtml :</p>
  
  <pre><code>&lt;html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:p="http://primefaces.org/ui"&gt;
  &lt;h:head&gt;
  &lt;script name="jquery/jquery.js" library="primefaces"&gt;&lt;/script&gt;
  &lt;h:outputStylesheet library="css" name="resources/css/table-style.css"  /&gt;
  &lt;/h:head&gt;
  &lt;h:body&gt;
  &lt;h:form&gt;
  &lt;p:growl id="message"&gt;&lt;/p:growl&gt;
  &lt;p:tabView activeIndex="#{travelBean.index}" dynamic="true" effect="fade" effectDuration="fast"&gt;
       &lt;p:tab title="Trains"&gt;
  
          &lt;h:form&gt;
              &lt;h:outputText value="Source"/&gt;:&lt;h:inputText id="source" value="#{travelBean.source}"&gt;&lt;/h:inputText&gt;
              &lt;h:outputText value="Destination"/&gt;:&lt;h:inputText id="destination" value="#{travelBean.destination}"&gt;&lt;/h:inputText&gt;
              &lt;h:outputText value="Date"/&gt;:&lt;p:calendar id="date" value="#{travelBean.date}"&gt;&lt;/p:calendar&gt;
              &lt;h:commandButton value="Search Trains" update="table-wrapper" action="#{travelBean.travelInfo}" actionListener="#{travelBean.travelInfo}" &gt; 
                  &lt;!-- &lt;f:ajax execute="@this source destination date" render="output" /&gt; --&gt;
                   &lt;f:attribute name="source" value="#{travelBean.source}"/&gt;
                   &lt;f:attribute name="destination" value="#{travelBean.destination}"/&gt;
                   &lt;f:attribute name="date" value="#{travelBean.date}"/&gt;
              &lt;/h:commandButton&gt;
             &lt;h2&gt;&lt;h:outputText id="output" value="#{travelBean.source} #{travelBean.destination} #{travelBean.date}"/&gt;&lt;/h2&gt; 
          &lt;/h:form&gt;
  
      &lt;/p:tab&gt; 
      &lt;p:tab title="Flights"&gt;
          &lt;h1&gt;Search flights by routes&lt;/h1&gt;
           &lt;h:form&gt;
              &lt;h:outputText value="Source"/&gt;:&lt;h:inputText id="source" value="#{travelBean.source}"&gt;&lt;/h:inputText&gt;
              &lt;h:outputText value="Destination"/&gt;:&lt;h:inputText id="destination" value="#{travelBean.destination}"&gt;&lt;/h:inputText&gt;
              &lt;h:outputText value="Date"/&gt;:&lt;h:inputText id="date" value="#{travelBean.date}"&gt;&lt;/h:inputText&gt;
              &lt;h:commandButton value="Search Flights" &gt;
                  &lt;f:ajax execute="@form" render="output" /&gt;
              &lt;/h:commandButton&gt;
  
              &lt;h2&gt;&lt;h:outputText id="output" value="#{travelBean.source}"/&gt;        &lt;/h2&gt;
           &lt;/h:form&gt; 
  
      &lt;/p:tab&gt;
  &lt;/p:tabView&gt;
  
  
  &lt;/h:form&gt;
  
  &lt;/h:body&gt;
  
  &lt;/html&gt;
  </code></pre>
  
  <p>I have looked at the other questions, and tried the answer but nothing worked.
  Any help is highly appreciated. Thanks in advance!</p>