ajax primefaces 2.2M1 <p:ajax /> helpme

UI Components for JSF
Post Reply
wwperseo
Posts: 15
Joined: 25 Jun 2010, 15:24

13 Sep 2010, 18:59

Hi friends.
i'm work fine with primefaces 2.1, the code:


<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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:p="http://primefaces.prime.com.tr/ui"
xmlns:f="http://java.sun.com/jsf/core">

<h:head>
<title>Login asistente</title>
</h:head>
<h:body>

<h:form>
<h:selectOneMenu value="#{beanLoginAsistente.planId}">
<f:selectItem itemLabel="Seleccione plan" itemValue="0" />
<f:selectItem itemLabel="plan1" itemValue="1" />
<f:selectItem itemLabel="plan2" itemValue="2" />
<p:ajax update="txtPlan" event="change" actionListener="#{beanLoginAsistente.hacerAlgo}" />
</h:selectOneMenu>
<h:outputText id="txtPlan" value="Tipo Plan :#{beanLoginAsistente.planId}"/>

</h:form>
</h:body>
</html>

my bean is:

@ManagedBean(name="beanLoginAsistente")
@SessionScoped
public class BeanLoginAsistente implements Serializable{
private Logger logger = Logger.getLogger(BeanLoginAsistente.class.getName());
private Integer planId;

public Integer getPlanId() {
return planId;
}

public void setPlanId(Integer planId) {
this.planId = planId;
}

public void hacerAlgo(){
logger.log(Level.INFO, "haciendo algo con el combo...");
}
}


it's work, but i'm migrate to primefaces 2.2M1 (change .jar) and it's not work.
on <p:ajax /> component netbeans IDE 6.9.1 shows a suggestion:

"the attribute update is not defined in the componnet's interface"
and red line mark this
when I run application, i'm change combobox, the log of glassfish server print:

INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
ADVERTENCIA: /asistente/loginAsistente.xhtml @43,120 actionListener="#{beanLoginAsistente.hacerAlgo}": Method not found: backingBeansAsistente.BeanLoginAsistente@52ce2a.hacerAlgo(javax.faces.event.ActionEvent)
javax.el.MethodNotFoundException: /asistente/loginAsistente.xhtml @43,120 actionListener="#{beanLoginAsistente.hacerAlgo}": Method not found: backingBeansAsistente.BeanLoginAsistente@52ce2a.hacerAlgo(javax.faces.event.ActionEvent)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102)
at org.primefaces.component.behavior.ajax.AjaxBehavior.broadcast(AjaxBehavior.java:203)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:763)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
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:312)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:619)

GRAVE: javax.faces.FacesException: /asistente/loginAsistente.xhtml @43,120 actionListener="#{beanLoginAsistente.hacerAlgo}": Method not found: backingBeansAsistente.BeanLoginAsistente@52ce2a.hacerAlgo(javax.faces.event.ActionEvent)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:90)
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:312)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:619)
Caused by: javax.el.MethodNotFoundException: /asistente/loginAsistente.xhtml @43,120 actionListener="#{beanLoginAsistente.hacerAlgo}": Method not found: backingBeansAsistente.BeanLoginAsistente@52ce2a.hacerAlgo(javax.faces.event.ActionEvent)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102)
at org.primefaces.component.behavior.ajax.AjaxBehavior.broadcast(AjaxBehavior.java:203)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:763)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
... 27 more

please can you helpme, thanks.

tonico
Posts: 51
Joined: 22 Aug 2010, 00:15

13 Sep 2010, 19:42

Try to use <f:ajax> instead and the listener method requires an AjaxBehaviorEvent as a parameter such as this:

public void hacerAlgo(AjaxBehaviorEvent event) {
UIComponent uiComponent = UIComponent.getCompositeComponentParent(event.getComponent());
....
}
- Tonico
Primefaces 2.2.1 - Glassfish 3.1 - Mac OS X Lion

asermej
Posts: 25
Joined: 30 Jun 2010, 03:24

21 Nov 2010, 05:31

I was running across this same issue, and switching from p:ajax to f:ajax got rid of the Method not found exception for my listener. Is this an issue that needs to be logged?

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 59 guests