Boa noite pessoal, estou iniciando um pequeno projeto utilizando Spring, JSF(MyFaces) e Hibernate/JPA mas estou enfrentando um problema meio estranho.
Criei meu ProdutoDAOImpl da seguinte maneira:
package br.com.fci.dao;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import br.com.fci.bean.Produto;
public class ProdutoDAOImpl extends HibernateDaoSupport implements ProdutoDAO {
DataModel dataModel;
Produto produto;
public DataModel getListaProdutos() {
dataModel = new ListDataModel (getHibernateTemplate().loadAll(Produto.class));
return dataModel;
}
public String editarProduto() {
produto = (Produto) dataModel.getRowData();
return "editarProduto";
}
public String salvarProduto() {
try {
getHibernateTemplate().persist(produto);
} catch (Exception ex) {
}
return "salvaProduto";
}
public String novoProduto() {
this.produto = new Produto();
return "novoProduto";
}
public Produto getProduto() {
return produto;
}
public void setProduto(Produto produto) {
this.produto = produto;
}
}
Quando tento acessar o metodo salvarProduto estou recebendo o erro:
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
javax.faces.el.PropertyNotFoundException: Base is null: .produto
at org.apache.myfaces.el.ValueBindingImpl.resolveToBaseAndProperty(ValueBindingImpl.java:477)
at org.apache.myfaces.el.ValueBindingImpl.getType(ValueBindingImpl.java:175)
at org.apache.myfaces.shared_impl.renderkit._SharedRendererUtils.findUIOutputConverter(_SharedRendererUtils.java:58)
at org.apache.myfaces.shared_impl.renderkit.RendererUtils.findUIOutputConverter(RendererUtils.java:333)
at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getConvertedUIOutputValue(RendererUtils.java:627)
at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.getConvertedValue(HtmlTextRendererBase.java:191)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:402)
at javax.faces.component.UIInput.validate(UIInput.java:356)
at javax.faces.component.UIInput.processValidators(UIInput.java:190)
at javax.faces.component.UIForm.processValidators(UIForm.java:73)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:776)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:149)
at org.apache.myfaces.lifecycle.ProcessValidationsExecutor.execute(ProcessValidationsExecutor.java:32)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:173)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Para nao ficar um post muito grande alguns pontos:
- Adicionei meu Bean ao applicationContext.xml
- Adicionei meu Bean ao faces-config.xml e configurei o sessionFactory
- Crio uma pagina com um list e funciona normalmente…
Obrigado pessoal!