estou trabalhando com jpa e estou com alguns problemas, não consigo entender o por que desse erro, os beans são gerado de uma classe do banco da dados e quando eu faço alguns testes em JSP e ele me retorna os seguintes erros.
[size=18]javax.servlet.ServletException: Error testing property ‘diasemana’ in bean of type null javax.faces.webapp.FacesServlet.service(FacesServlet.java:209) [/size]
Poste o seu código aqui , para que possamos te ajudar.
T
Tecnoage
é, “fião”, sem código fica difícil ajudar em alguma coisa… posta ae
ruilima
ruilima:
estou trabalhando com jpa e estou com alguns problemas, não consigo entender o por que desse erro, os beans são gerado de uma classe do banco da dados e quando eu faço alguns testes em JSP e ele me retorna os seguintes erros.
[size=18]javax.servlet.ServletException: Error testing property ‘diasemana’ in bean of type null javax.faces.webapp.FacesServlet.service(FacesServlet.java:209) [/size]
Cria uma nova instância de Agchefe com os valores especificados.
@param id o id do Agchefe
*/
public Agchefe(Integer id) {
this.id = id;
}
/**
Define o id deste Agchefe.
@return o id
*/
public Integer getId() {
return this.id;
}
/**
Define o id deste Agchefe para o valor especificado.
@param id o novo id
*/
public void setId(Integer id) {
this.id = id;
}
/**
Define o data deste Agchefe.
@return o data
*/
public Date getData() {
return this.data;
}
/**
Define o data deste Agchefe para o valor especificado.
@param data o novo data
*/
public void setData(Date data) {
this.data = data;
}
/**
Define o diasemana deste Agchefe.
@return o diasemana
*/
public String getDiasemana() {
return this.diasemana;
}
/**
Define o diasemana deste Agchefe para o valor especificado.
@param diasemana o novo diasemana
*/
public void setDiasemana(String diasemana) {
this.diasemana = diasemana;
}
/**
Define o descricao deste Agchefe.
@return o descricao
*/
public String getDescricao() {
return this.descricao;
}
/**
Define o descricao deste Agchefe para o valor especificado.
@param descricao o novo descricao
*/
public void setDescricao(String descricao) {
this.descricao = descricao;
}
/**
Retorna um valor de código hash para o objeto. Esta implementação computa
um valor de código hash baseado nos campos id deste objeto.
@return um valor de código hash para este objeto.
*/ @Override
public int hashCode() {
int hash = 0;
hash += (this.id != null ? this.id.hashCode() : 0);
return hash;
}
/**
Determina se outro objeto é igual a este Agchefe. O resultado é
true se e somente se o argumento não for nulo e for um objeto Agchefe o qual
tem o mesmo valor para o campo id como este objeto.
@param object o objeto de referência com o qual comparar
@returntrue se este objeto é o mesmo como o argumento;
false caso contrário.
*/ @Override
public boolean equals(Object object) {
// TODO: Warning - this method won’t work in the case the id fields are not set
if (!(object instanceof Agchefe)) {
return false;
}
Agchefe other = (Agchefe)object;
if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) return false;
return true;
}
/**
Retorna uma representação literal deste objeto. Esta implementação cria
uma representação baseada nos campos id.
@return uma representação literal deste objeto.
*/ @Override
public String toString() {
return “casacivil.pa.gov.sitio.entidades.Agchefe[id=” + id + “]”;
}
}
Minha classe controler
public class AgchefeController {
/** Creates a new instance of AgchefeController */publicAgchefeController(){emf=Persistence.createEntityManagerFactory("casacivilAdminPU");}privateAgchefeagchefe;privateDataModelmodel;privateEntityManagerFactoryemf;privateEntityManagergetEntityManager(){returnemf.createEntityManager();}privateintbatchSize=20;privateintfirstItem=0;publicAgchefegetAgchefe(){returnagchefe;}publicvoidsetAgchefe(Agchefeagchefe){this.agchefe=agchefe;}publicDataModelgetDetailAgchefes(){returnmodel;}publicvoidsetDetailAgchefes(Collection<Agchefe>m){model=newListDataModel(newArrayList(m));}publicStringcreateSetup(){this.agchefe=newAgchefe();return"agchefe_create";}publicStringcreate(){EntityManagerem=getEntityManager();try{em.getTransaction().begin();em.persist(agchefe);em.getTransaction().commit();addSuccessMessage("Agchefe was successfully created.");}catch(Exceptionex){try{addErrorMessage(ex.getLocalizedMessage());em.getTransaction().rollback();}catch(Exceptione){addErrorMessage(e.getLocalizedMessage());}}finally{em.close();}return"agchefe_list";}publicStringdetailSetup(){setAgchefeFromRequestParam();return"agchefe_detail";}publicStringeditSetup(){setAgchefeFromRequestParam();return"agchefe_edit";}publicStringedit(){EntityManagerem=getEntityManager();try{em.getTransaction().begin();agchefe=em.merge(agchefe);em.getTransaction().commit();addSuccessMessage("Agchefe was successfully updated.");}catch(Exceptionex){try{addErrorMessage(ex.getLocalizedMessage());em.getTransaction().rollback();}catch(Exceptione){addErrorMessage(e.getLocalizedMessage());}}finally{em.close();}return"agchefe_list";}publicStringdestroy(){EntityManagerem=getEntityManager();try{em.getTransaction().begin();Agchefeagchefe=getAgchefeFromRequestParam();agchefe=em.merge(agchefe);em.remove(agchefe);em.getTransaction().commit();addSuccessMessage("Agchefe was successfully deleted.");}catch(Exceptionex){try{addErrorMessage(ex.getLocalizedMessage());em.getTransaction().rollback();}catch(Exceptione){addErrorMessage(e.getLocalizedMessage());}}finally{em.close();}return"agchefe_list";}publicAgchefegetAgchefeFromRequestParam(){EntityManagerem=getEntityManager();try{Agchefeo=(Agchefe)model.getRowData();o=em.merge(o);returno;}finally{em.close();}}publicvoidsetAgchefeFromRequestParam(){Agchefeagchefe=getAgchefeFromRequestParam();setAgchefe(agchefe);}publicDataModelgetAgchefes(){EntityManagerem=getEntityManager();try{Queryq=em.createQuery("select object(o) from Agchefe as o");q.setMaxResults(batchSize);q.setFirstResult(firstItem);model=newListDataModel(q.getResultList());returnmodel;}finally{em.close();}}publicstaticvoidaddErrorMessage(Stringmsg){FacesMessagefacesMsg=newFacesMessage(FacesMessage.SEVERITY_ERROR,msg,msg);FacesContextfc=FacesContext.getCurrentInstance();fc.addMessage(null,facesMsg);}publicstaticvoidaddSuccessMessage(Stringmsg){FacesMessagefacesMsg=newFacesMessage(FacesMessage.SEVERITY_INFO,msg,msg);FacesContextfc=FacesContext.getCurrentInstance();fc.addMessage("successInfo",facesMsg);}publicAgchefefindAgchefe(Integerid){EntityManagerem=getEntityManager();try{Agchefeo=(Agchefe)em.find(Agchefe.class,id);returno;}finally{em.close();}}publicintgetItemCount(){EntityManagerem=getEntityManager();try{intcount=((Long)em.createQuery("select count(o) from Agchefe as o").getSingleResult()).intValue();returncount;}finally{em.close();}}publicintgetFirstItem(){returnfirstItem;}publicintgetLastItem(){intsize=getItemCount();returnfirstItem+batchSize>size?size:firstItem+batchSize;}publicintgetBatchSize(){returnbatchSize;}publicStringnext(){if(firstItem+batchSize<getItemCount()){firstItem+=batchSize;}return"agchefe_list";}publicStringprev(){firstItem-=batchSize;if(firstItem<0){firstItem=0;}return"agchefe_list";}
H
hugov
Não ajudou muita coisa , mas interpretando o código fonte me parece que você não está passando o dia da semana , e está dando erro quando o JPA vai validar as suas consultas na namedQuery.
ruilima
pois é, creio que não seria isso do NamedQuery, pois estou passando @NamedQuery(name = “Agchefe.findByDiasemana”, query = “SELECT a FROM Agchefe a WHERE a.diasemana = :diasemana”),
deixa eu te explicar, é que essa classe bean e a jsp foram geradas a partir do banco de dados. Pois tanto nas classes quanto na no banco dados o atributo não esta definido como null, então no momento em que executo a aplicação ela roda normalmente é quando passo os parametros inserindo diretamente no jsp (que é um JSF) ele me retorna esse erro javax.servlet.ServletException: Error testing property ‘diasemana’ in bean of type null javax.faces.webapp.FacesServlet.service(FacesServlet.java:209).
Não sei se vc teve algum tipo de problema referente a isso!!!
ruilima
pois é, creio que não seria isso do NamedQuery, pois estou passando @NamedQuery(name = “Agchefe.findByDiasemana”, query = “SELECT a FROM Agchefe a WHERE a.diasemana = :diasemana”),
deixa eu te explicar, é que essa classe bean e a jsp foram geradas a partir do banco de dados. Pois tanto nas classes quanto na no banco dados o atributo não esta definido como null, então no momento em que executo a aplicação ela roda normalmente é quando passo os parametros inserindo diretamente no jsp (que é um JSF) ele me retorna esse erro javax.servlet.ServletException: Error testing property ‘diasemana’ in bean of type null javax.faces.webapp.FacesServlet.service(FacesServlet.java:209).
Não sei se vc teve algum tipo de problema referente a isso!!!
ruilima
pois é, creio que não seria isso do NamedQuery, pois estou passando @NamedQuery(name = “Agchefe.findByDiasemana”, query = “SELECT a FROM Agchefe a WHERE a.diasemana = :diasemana”),
deixa eu te explicar, é que essa classe bean e a jsp foram geradas a partir do banco de dados. Pois tanto nas classes quanto na no banco dados o atributo não esta definido como null, então no momento em que executo a aplicação ela roda normalmente é quando passo os parametros inserindo diretamente no jsp (que é um JSF) ele me retorna esse erro javax.servlet.ServletException: Error testing property ‘diasemana’ in bean of type null javax.faces.webapp.FacesServlet.service(FacesServlet.java:209).
Não sei se vc teve algum tipo de problema referente a isso!!!
ruilima
pois é, creio que não seria isso do NamedQuery, pois estou passando @NamedQuery(name = “Agchefe.findByDiasemana”, query = “SELECT a FROM Agchefe a WHERE a.diasemana = :diasemana”),
deixa eu te explicar, é que essa classe bean e a jsp foram geradas a partir do banco de dados. Pois tanto nas classes quanto na no banco dados o atributo não esta definido como null, então no momento em que executo a aplicação ela roda normalmente é quando passo os parametros inserindo diretamente no jsp (que é um JSF) ele me retorna esse erro javax.servlet.ServletException: Error testing property ‘diasemana’ in bean of type null javax.faces.webapp.FacesServlet.service(FacesServlet.java:209).
Não sei se vc teve algum tipo de problema referente a isso!!!