Método não encontrado!. Java EE+Primefaces

0 respostas
alexmcsilva

Boa noite

Sou iniciante em Java EE, estou fazendo uma tela de cadastro, fiz a classe, o managed bean e a página em xhtml. Pelo que eu vi na página xhtml não esta reconhecendo o método que eu criei no managed bean. Se alguém puder me dar uma força ficarei muito grato. Segue o código fonte da página e o erro do console.

Console:

dez 19, 2017 9:06:41 PM com.sun.faces.lifecycle.InvokeApplicationPhase execute
ADVERTÊNCIA: #{cadastroProgMembrosBean.salvar}: javax.el.MethodNotFoundException: /cadastro/CadastroProgMembros.xhtml @15,100 action="#{cadastroProgMembrosBean.salvar}": Method not found: [email removido]()
javax.faces.FacesException: #{cadastroProgMembrosBean.salvar}: javax.el.MethodNotFoundException: /cadastro/CadastroProgMembros.xhtml @15,100 action="#{cadastroProgMembrosBean.salvar}": Method not found: [email removido]()
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:109)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	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.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:509)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1104)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)
Caused by: javax.faces.el.MethodNotFoundException: javax.el.MethodNotFoundException: /cadastro/CadastroProgMembros.xhtml @15,100 action="#{cadastroProgMembrosBean.salvar}": Method not found: [email removido]()
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:92)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:101)
	... 28 more
Caused by: javax.el.MethodNotFoundException: /cadastro/CadastroProgMembros.xhtml @15,100 action="#{cadastroProgMembrosBean.salvar}": Method not found: [email removido]()
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:109)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	... 29 more

Classe ProgMembros:

package sistemawebiac.com.modelo;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="progmembros")
public class ProgMembros implements Serializable {
	
	private static final long serialVersionUID = 1L;
	private Long pkcodprogmemb;
	private String descprogmemb;
	private BigDecimal valor;
	private Date valid_assinatura;
	
	public Date getValid_assinatura() {
		return valid_assinatura;
	}
	public void setValid_assinatura(Date valid_assinatura) {
		this.valid_assinatura = valid_assinatura;
	}
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(nullable = false)
	public Long getPkcodprogmemb() {
		return pkcodprogmemb;
	}
	public void setPkcodprogmemb(Long pkcodprogmemb) {
		this.pkcodprogmemb = pkcodprogmemb;
	}
	public String getDescprogmemb() {
		return descprogmemb;
	}
	public void setDescprogmemb(String descprogmemb) {
		this.descprogmemb = descprogmemb;
	}
	public BigDecimal getValor() {
		return valor;
	}
	public void setValor(BigDecimal valor) {
		this.valor = valor;
	}

}

Managed Bean

package sistemawebiac.com.controle;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import sistemawebiac.com.dao.DaoGeneric;
import sistemawebiac.com.modelo.ProgMembros;

@ViewScoped
@ManagedBean(name="cadastroProgMembrosBean")
public class CadastroProgMembrosBean {

   private ProgMembros progMemb = new ProgMembros(); 
   private DaoGeneric<ProgMembros> daoProgMemb = new DaoGeneric<ProgMembros>();

   
public String salvar(){
	daoProgMemb.salvar(progMemb);
	return "";
}

public ProgMembros getProgMemb() {
	return progMemb;
}

public void setProgMemb(ProgMembros progMemb) {
	this.progMemb = progMemb;
}

public DaoGeneric<ProgMembros> getDaoProgMemb() {
	return daoProgMemb;
}

public void setDaoProgMemb(DaoGeneric<ProgMembros> daoProgMemb) {
	this.daoProgMemb = daoProgMemb;
}
}

DaoGeneric

package sistemawebiac.com.dao;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;

import sistemawebiac.com.util.jpa.JPAUtil;

public class DaoGeneric<E>{

    public void salvar(E entidade){
    	EntityManager entityManager = JPAUtil.getEntityManager();
    	EntityTransaction entityTransaction = entityManager.getTransaction();
    	entityTransaction.begin();
    	
    	entityManager.persist(entidade);
    	
    	entityTransaction.commit();
    	entityManager.close();
    }
    
}

CadastroProgMembros

<ui:composition template="/WEB-INF/template/LayoutPadrao.xhtml"
	  xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
	  xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">

     <ui:define name="titulo">Programa Membros</ui:define>
     <ui:define name="corpo">
           <h1>Programa Membros</h1>
           
           <p:toolbar ajax="false" style="margin-top: 20px">
               <p:toolbarGroup>
                    <p:button value="Novo" outcome="/cadastro/CadastroProgMembros"/>
 					<p:commandButton value="Salvar" id="botaoSalvar" action="#{cadastroProgMembrosBean.salvar}"/>              
               </p:toolbarGroup>
               <p:toolbarGroup align="right">
                    <p:button value="Pesquisa"/>
               </p:toolbarGroup>
           </p:toolbar>
           
           <p:panelGrid columns="2" id="painel" style="width: 100%; margin-top: 20px"
                        columnClasses="rotulo, campo">
		      <p:outputLabel value="Código" for="codedt"/>
		      <p:inputText id="codedt" size="11" maxlenght="11" value="#{cadastroProgMembrosBean.progMemb.pkcodprogmemb}"/>
		      
		      <p:outputLabel value="Descrição" for="descedt"/>
		      <p:inputText id="descedt" size="50" maxlenght="50" value="#{cadastroProgMembrosBean.progMemb.descprogmemb}"/>
           
           	  <p:outputLabel value="Valor" for="valoredt"/>
		      <p:inputText id="valoredt" size="11" maxlenght="11" value="#{cadastroProgMembrosBean.progMemb.valor}"/>
              
              <p:outputLabel value="Validade da assinatura" for="dtvalassin"/>
		      <p:calendar id="dtvalassin" mask="true" size="10" maxlenght="10" showbuttonpanel="true" locale="pt_BR" pattern="dd/mm/yyyy" navigator="true" value="#{cadastroProgMembrosBean.progMemb.valid_assinatura}"/>
		   </p:panelGrid>
     </ui:define>
</ui:composition>
Criado 19 de dezembro de 2017
Respostas 0
Participantes 1