1

Project Specificiation: JSF 2.1.2, Primefaces-Mobile 0.9.5, Primefaces 3.5 I'm trying to implement auto-complete feature of primefaces with instant ajax selection, below is the code:

<pm:content>
                <p:panel header="header1" toggleable="true" id="panel1">
                    <h:form>
                        <p:autoComplete value="#{analyzerFilterInput.ipAddress}"
                            completeMethod="#{analyzerFilterInput.getIpAddrList}">
                            <p:ajax event="itemSelect"
                                listener="analyzerFilterInput.handleSelect" update="msg" />
                        </p:autoComplete>
                        <p:messages id="msg" />
                    </h:form>
                </p:panel>
                <p:panel header="header2" toggleable="true" id="panel2">
                </p:panel>
            </pm:content>

View-Scoped Class AnalyzerFilterInput

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.faces.application.FacesMessage;

import org.primefaces.event.SelectEvent;

public class AnalyzerFilterInput implements Serializable
{

    private static final long serialVersionUID = 1L;
private String ipAddress;
private List<String> ipAddrs;

    public AnalyzerFilterInput()
    {
        ipAddrs = new ArrayList<String>();
    }

    public String getIpAddress()
    {
        return ipAddress;
    }

    public void setIpAddress(String ipAddress)
    {
        this.ipAddress = ipAddress;
    }
public List<String> getIpAddrList(String query){
        ipAddrs.clear();
        ipAddrs.add("192.168.1.1");
        ipAddrs.add("192.168.1.2");
        ipAddrs.add("192.168.1.3");
        return ipAddrs;
    }

    public void handleSelect(SelectEvent event) {
        Object item = event.getObject();
        FacesMessage msg = new FacesMessage("Selected", "Item:" + item);
        }
}

I'm getting an Methodnotfound exception, can someone help me in resolving this?

javax.el.MethodNotFoundException: Method not found: com.atr.web.userhome.AnalyzerFilterInput@1026921.handleSelect(org.primefaces.event.SelectEvent)
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 org.primefaces.component.behavior.ajax.AjaxBehaviorListenerImpl.processCustomListener(AjaxBehaviorListenerImpl.java:70)
at org.primefaces.component.behavior.ajax.AjaxBehaviorListenerImpl.processArgListener(AjaxBehaviorListenerImpl.java:59)
at org.primefaces.component.behavior.ajax.AjaxBehaviorListenerImpl.processAjaxBehavior(AjaxBehaviorListenerImpl.java:47)
at org.primefaces.event.SelectEvent.processListener(SelectEvent.java:40)
at javax.faces.component.behavior.BehaviorBase.broadcast(BehaviorBase.java:102)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:760)
at org.primefaces.component.autocomplete.AutoComplete.broadcast(AutoComplete.java:381)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
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:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:681)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:452)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:138)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:564)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:213)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1083)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:379)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:175)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1017)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:136)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:445)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:260)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:225)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.run(AbstractConnection.java:358)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:596)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:527)
at java.lang.Thread.run(Thread.java:722)

I could find Listening to onSelect events from Autocomplete (Primefaces) component related to my issue, but there is no selectlistener attribute for primefaces autocomplete in 3.5 release.

Community
  • 1
  • 1
FiendFyre
  • 157
  • 3
  • 17
  • @BalusC could you please help me with this issue ? – FiendFyre Jul 03 '13 at 16:03
  • is `listener="analyzerFilterInput.handleSelect"` a typo or that's what you really have in your code? You know you're supposed to have `listener="#{analyzerFilterInput.handleSelect}" right? – kolossus Jul 05 '13 at 12:57
  • @kolossus I tried with listener="#{analyzerFilterInput.handleSelect}" but i still get the same error. – FiendFyre Jul 05 '13 at 19:41

2 Answers2

3

You need bean and scope annotations in order to get access to the bean :

@ManagedBean
@SessionScoped,@ViewScoped...
ngrashia
  • 9,869
  • 5
  • 43
  • 58
Jan ATAC
  • 1,212
  • 1
  • 18
  • 36
-2

method not found. Because you have not enclosed with braces

listener="analyzerFilterInput.handleSelect"

should be changed to

listener="#{analyzerFilterInput.handleSelect}"
ngrashia
  • 9,869
  • 5
  • 43
  • 58
Ganesh
  • 11
  • 1
  • 1
    It's just carelessness of OP. OP was fiddling around in the code and OP copypasted code which didn't match the error message. If OP had indeed no braces in first place, then OP wouldn't have gotten the particular method not found exception at all. – BalusC Aug 27 '15 at 09:02