O código aparentemente está sem nenhum erro de sintaxe o netbeans confirma isto, porém cai no pior dos erros uma OO mal feita
um pequeno detalhe um objeto que deveria ter dado new…etc
Já revirei todas as classes e nada de fazer funcionar, poderiam me ajudar no que eu estou deixando passar batido
Logo abaixo do erro está o código das classes:
ps: o erro só aparece quando chamo a view paciente.xhtml
com.sun.faces.mgbean.ManagedBeanCreationException: Não é possível criar instância para·a classe: Controle.PacienteBean.
at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:193)
at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:102)
at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409)
at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269)
at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:244)
at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:116)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:99)
at com.sun.el.parser.AstValue.getValue(AstValue.java:158)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:219)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
at javax.faces.component.UIOutput.getValue(UIOutput.java:169)
at org.primefaces.util.ComponentUtils.getStringValueToRender(ComponentUtils.java:67)
at org.primefaces.component.inputtext.InputTextRenderer.encodeMarkup(InputTextRenderer.java:85)
at org.primefaces.component.inputtext.InputTextRenderer.encodeEnd(InputTextRenderer.java:50)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312)
at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185)
at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:60)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:48)
at org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:184)
at org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:107)
at org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:55)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException // Não consigo descobrir onde está este erro!
at Util.HibernateUtility.getSession(HibernateUtility.java:20)
at Dao.PacienteDaoImp.consultar(PacienteDaoImp.java:19)
at Controle.PacienteBean.<init>(PacienteBean.java:25)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:188)
... 65 more
Pacote Modelo Classe Paciente:
package Modelo;
import Modelo.Location.Endereco;
import Modelo.Ficha.Ficha;
import Modelo.Ficha.FichaPeriodontoal;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
/**
*
* @author Paulo
*/
@Entity
public class Paciente implements Serializable {
@Id
@GeneratedValue
@Column(name="id_paciente")
private long id;
private String nome;
private String telefone;
private String celular;
@OneToOne(mappedBy="paciente")
@Cascade(CascadeType.ALL)
private Endereco endereco;
private String email;
private Timestamp nascimento;
private String cpf;
private String sexo;
@OneToOne(mappedBy="paciente")
@Cascade(CascadeType.ALL)
private Ficha fichaGeral;
@OneToOne(mappedBy="paciente")
@Cascade(CascadeType.ALL)
private FichaPeriodontoal fichaPeriodontal;
@OneToMany(mappedBy="paciente", fetch= FetchType.LAZY)
@Cascade(CascadeType.ALL)
private List<Tratamento> tratamentos;
public long getId() {
return id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getCelular() {
return celular;
}
public void setCelular(String celular) {
this.celular = celular;
}
public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Timestamp getNascimento() {
return nascimento;
}
public void setNascimento(Timestamp nascimento) {
this.nascimento = nascimento;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public Ficha getFichaGeral() {
return fichaGeral;
}
public void setFichaGeral(Ficha fichaGeral) {
this.fichaGeral = fichaGeral;
}
public FichaPeriodontoal getFichaPeriodontal() {
return fichaPeriodontal;
}
public void setFichaPeriodontal(FichaPeriodontoal fichaPeriodontal) {
this.fichaPeriodontal = fichaPeriodontal;
}
public List<Tratamento> getTratamentos() {
return tratamentos;
}
public void setTratamentos(List<Tratamento> tratamentos) {
this.tratamentos = tratamentos;
}
}
Pacote Dao Interface PacienteDao
package Dao;
import Modelo.Paciente;
import Util.DaoGenerico;
import java.util.List;
/**
*
* @author Paulo
*/
public interface PacienteDao extends DaoGenerico<Paciente, Long> {
public List consultar();
}
Pacote Dao Classe PacienteDaoImp
package Dao;
import Modelo.Paciente;
import Util.DaoGenericoImp;
import Util.HibernateUtility;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Criteria;
/**
*
* @author Paulo
*/
public class PacienteDaoImp extends DaoGenericoImp<Paciente, Long> implements PacienteDao {
@Override
public List consultar() {
List lista = new ArrayList();
Criteria crit = HibernateUtility.getSession().createCriteria(Paciente.class);
lista = (List) crit.list();
return lista;
}
}
Pacote Controle Classe PacienteBean
package Controle;
import Dao.PacienteDao;
import Dao.PacienteDaoImp;
import Modelo.Paciente;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
/**
*
* @author Paulo
*/
@ManagedBean
@ViewScoped
public class PacienteBean implements Serializable {
private Paciente paciente = new Paciente();
List <Paciente> pacientes = new ArrayList();
private PacienteDao dao = new PacienteDaoImp();
public PacienteBean() {
pacientes = dao.consultar(); // busca no banco todos os registros e popula a lista de pacientes
}
public void salvar(){
dao.merge(paciente); // salvando no banco de dados
paciente = new Paciente(); // criando um novo objeto para caso for inserir novamente
pacientes = dao.consultar(); //busca os dados no banco após salvar para apresentar na tabela
}
public void editar(){
paciente = dao.getById(paciente.getId()); // busca no banco qual registro que vai ser alterado.
}
public void deletar(){
dao.delete(paciente); // deleta do banco o paciente que está no objeto paciente, que foi setado na view.
pacientes = dao.consultar(); // busca os dados no banco após excluir para apresentar na tabela
}
public Paciente getPaciente() {
return paciente;
}
public void setPaciente(Paciente paciente) {
this.paciente = paciente;
}
public List getPacientes() {
return pacientes;
}
public void setPacientes(List pacientes) {
this.pacientes = pacientes;
}
}
View paciente.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
template="./../template/template.xhtml"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:define name="conteudo">
<h:form id="form">
<p:panel header="Cadastro de Pacientes" id="panel">
<h:panelGrid columns="2">
<h:outputLabel value="Nome:" for="nome"/>
<p:inputText id="nome" value="#{pacienteBean.paciente.nome}" maxlength="40" size="40"/>
<h:outputLabel value="E-mail:" for="email"/>
<p:inputText id="email" value="#{pacienteBean.paciente.email}" maxlength="40" size="40"/>
<h:outputLabel value="Rua: " for="rua"/>
<p:inputText id="rua" value="#{pacienteBean.paciente.endereco.rua}" maxlength="40" size="40"/>
<h:outputLabel value="Bairro:" for="bairro"/>
<p:inputText id="bairro" value="#{pacienteBean.paciente.endereco.bairro}" maxlength="40" size="40"/>
<h:outputLabel value="CEP:" for="cep"/>
<p:inputMask id="cep" value="#{pacienteBean.paciente.endereco.cep}" mask="99999-999" size="40"/>
<!-- Não reparem neste pedaço ainda falta implementar-->
<h:outputLabel value="Cidade" for="cidade"/>
<p:selectOneListbox id="cidade" value=""/>
<h:outputLabel value="Estado" for="estado"/>
<p:selectOneListbox id="estado" value=""/>
<!-- Não reparem neste pedaço ainda falta implementar-->
<h:outputLabel value="Celular:" for="celular"/>
<p:inputMask id="celular" value="#{pacienteBean.paciente.celular}" mask="(99) 9999 - 9999" size="40"/>
<h:outputLabel value="CPF:" for="cpf"/>
<p:inputMask id="cpf" value="#{pacienteBean.paciente.cpf}" mask="[CPF removido]" size="40"/>
<h:outputLabel value="Data de Nascimento:" for="nascimento"/>
<p:calendar id="nascimento" value="#{pacienteBean.paciente.nascimento}" pattern="dd/mm/yyyy" size="40" effect="slideDown"/>
<h:outputLabel value="Sexo:" for="sexo"/>
<h:selectOneRadio id="sexo" value="#{pacienteBean.paciente.sexo}">
<f:selectItem itemLabel="M"/>
<f:selectItem itemLabel="F"/>
</h:selectOneRadio>
<p:commandButton id="btnSalvar" value="Salvar" actionListener="#{pacienteBean.salvar()}" update="form"/>
</h:panelGrid>
<p:dataTable id="tabela" value="#{pacienteBean.pacientes}" var="pac" emptyMessage="Nehum registro incluído" paginator="true" rows="10">
<f:facet name="header">
Lista de Pacientes
</f:facet>
<p:column headerText="Nome" style="text-align: center">
<h:outputText value="#{pac.nome}"/>
</p:column>
<p:column headerText="E-mail" style="text-align: center"/>
<p:column headerText="Endereco" style="text-align: center"/>
<p:column headerText="Celular" style="text-align: center"/>
<p:column headerText="CPF" style="text-align: center"/>
<p:column headerText="Nascimento" style="text-align: center"/>
<p:column headerText="Sexo" style="text-align: center"/>
</p:dataTable>
</p:panel>
</h:form>
</ui:define>
</ui:composition>
Pacote Util Interface DaoGenerico
package Util;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
*
* @author Paulo
*/
public interface DaoGenerico<T, ID extends Serializable> {
public Class<T> getObjectClass();
public T merge(T objeto);
public void delete(T objeto);
public void deleteItem(T objeto);
public List<T> getAll();
public List<T> getCriterio(String subClazz, Map<String, Object> filtrosConsulta, int tipoConsulta);
public T getById(Serializable id);
public List<T> consultaHQL(String consulta);
public void cancel();
}
Pacote Util Classe DaoGenericoImp
package Util;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.criterion.Restrictions;
/**
*
* @author Paulo
*/
public class DaoGenericoImp<T, ID extends Serializable> implements DaoGenerico<T, ID> {
private final Class<T> oClass;
public DaoGenericoImp() {
this.oClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
@Override
public Class<T> getObjectClass() {
return this.oClass;
}
@Override
public T merge(T objeto) {
try {
Object obj = null;
HibernateUtility.beginTransaction();
obj = HibernateUtility.getSession().merge(objeto);
HibernateUtility.commitTransaction();
HibernateUtility.closeSession();
return (T) obj;
} catch (HibernateException hibernateException) {
cancel();
throw hibernateException;
}
}
@Override
public void delete(T objeto) {
try {
HibernateUtility.beginTransaction();
HibernateUtility.getSession().delete(objeto);
HibernateUtility.commitTransaction();
HibernateUtility.closeSession();
} catch (HibernateException hibernateException) {
cancel();
throw hibernateException;
}
}
@Override
public void deleteItem(T objeto) {
try {
HibernateUtility.beginTransaction();
HibernateUtility.getSession().delete(objeto);
} catch (HibernateException hibernateException) {
cancel();
throw hibernateException;
}
}
@Override
public List<T> getAll() {
try {
List list = HibernateUtility.getSession().createCriteria(oClass).list();
//HibernateUtility.closeSession();
return (List<T>) list;
} catch (HibernateException hibernateException) {
cancel();
throw hibernateException;
}
}
@Override
public T getById(Serializable id) {
try {
return (T) HibernateUtility.getSession().get(oClass, id);
} catch (HibernateException hibernateException) {
cancel();
throw hibernateException;
}
}
@Override
public List<T> getCriterio(String subClazz, Map<String, Object> filtrosConsulta, int tipoConsulta) {
List<T> lista = new ArrayList<T>();
Set entradas = filtrosConsulta.entrySet();
try {
Criteria crit = HibernateUtility.getSession().createCriteria(oClass);
if (subClazz == null) {
for (Iterator it = entradas.iterator(); it.hasNext();) {
Entry object = (Entry) it.next();
if (object.getValue() instanceof Enum) {
crit.add(Restrictions.eq(object.getKey().toString(), object.getValue()));
} else if (tipoConsulta == 0) {
crit.add(Restrictions.ilike(object.getKey().toString(), "%" + object.getValue() + "%"));
} else if (tipoConsulta == 1) {
crit.add(Restrictions.eq(object.getKey().toString(), object.getValue()));
} else if (tipoConsulta == 2) {
crit.add(Restrictions.gt(object.getKey().toString(), object.getValue()));
} else if (tipoConsulta == 3) {
crit.add(Restrictions.ge(object.getKey().toString(), object.getValue()));
} else if (tipoConsulta == 4) {
crit.add(Restrictions.lt(object.getKey().toString(), object.getValue()));
} else if (tipoConsulta == 5) {
crit.add(Restrictions.le(object.getKey().toString(), object.getValue()));
} else if (tipoConsulta == 2) {
crit.add(Restrictions.ne(object.getKey().toString(), object.getValue()));
}
}
} else {
for (Iterator it = entradas.iterator(); it.hasNext();) {
Entry object = (Entry) it.next();
//crit.createCriteria(subClazz).add(Restrictions.ilike(object.getKey().toString(), "%" + object.getValue() + "%"));
if (object.getValue() instanceof Enum) {
} else if (tipoConsulta == 0) {
crit.createCriteria(subClazz).add(Restrictions.ilike(object.getKey().toString(), "%" + object.getValue() + "%"));
} else if (tipoConsulta == 1) {
crit.createCriteria(subClazz).add(Restrictions.eq(object.getKey().toString(), object.getValue()));
} else if (tipoConsulta == 2) {
crit.createCriteria(subClazz).add(Restrictions.gt(object.getKey().toString(), object.getValue()));
} else if (tipoConsulta == 3) {
crit.createCriteria(subClazz).add(Restrictions.ge(object.getKey().toString(), object.getValue()));
} else if (tipoConsulta == 4) {
crit.createCriteria(subClazz).add(Restrictions.lt(object.getKey().toString(), object.getValue()));
} else if (tipoConsulta == 5) {
crit.createCriteria(subClazz).add(Restrictions.le(object.getKey().toString(), object.getValue()));
} else if (tipoConsulta == 2) {
crit.createCriteria(subClazz).add(Restrictions.ne(object.getKey().toString(), object.getValue()));
}
}
}
crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
crit.setMaxResults(20);
lista = (List<T>) crit.list();
//HibernateUtility.closeSession();
return lista;
} catch (HibernateException hibernateException) {
cancel();
throw hibernateException;
}
}
@Override
public List<T> consultaHQL(String consulta) {
return (List<T>) HibernateUtility.getSession().createQuery(consulta).list();
}
@Override
public void cancel() {
HibernateUtility.rollbackTransaction();
HibernateUtility.closeSession();
}
}
Bom é isso, me ajudem a achar o que estou deixando passar batido.
Algo me diz que é uma coisa pequena um detalhe.