Galera, estou precisando colocar um DAO para funcionar, e não estou conseguindo. Pode ser algum erro nos arquivos web.xml, applicationContext.xml ou até mesmo no facesConfig.xml. O negócio é que não estou conseguindo achar o erro. Vou colocar o código completo aqui… alguém por favor… veja se me ajude…
arquivo web.xml
[color=blue]<?xml version="1.0"?>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config.xml</param-value>
</context-param>
<listener>
<listener-class>br.com.netservice.aplicacao.Inicializacao</listener-class>
</listener>
<!-- Faces Servlet -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup> 1 </load-on-startup>
</servlet>
<!-- Faces Servlet Mapping -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
arquivo applicationContext.xml
[color=blue]
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="Telefonia" />
</bean>
<context:component-scan base-package="br.com.netservice.controller"/>
<!--<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />-->
<context:annotation-config/>
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven />
<bean id="localidadeDao" class="br.com.netservice.dao.imp.LocalidadeDaoImp">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="enviarEmail"
class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="HOST"/>
<property name="username" value="USUARIO"/>
<property name="password" value="SENHA"/>
</bean>
arquivo facesConfig.xml
[color=blue]
<managed-bean>
<managed-bean-name>LocalidadeController</managed-bean-name>
<managed-bean-class>br.com.netservice.controller.LocalidadeController</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/pages/localidade.jsp</from-view-id>
<navigation-case>
<from-action>#{Localidade.inserir}</from-action>
<from-outcome>lista</from-outcome>
<to-view-id>/pages/localidade.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-action>#{Localidade.pesquisar}</from-action>
<from-outcome>lista</from-outcome>
<to-view-id>/pages/localidadeLista.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>Localidade</managed-bean-name>
<managed-bean-class>br.com.netservice.cadastros.Localidade</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/pages/localidade.jsp</from-view-id>
<navigation-case>
<from-action>#{Localidade.inserir}</from-action>
<from-outcome>lista</from-outcome>
<to-view-id>/pages/localidade.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-action>#{Localidade.pesquisar}</from-action>
<from-outcome>lista</from-outcome>
<to-view-id>/pages/localidadeLista.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>UnidadeFederacao</managed-bean-name>
<managed-bean-class>br.com.netservice.cadastros.UnidadeFederacao</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>unf_Id</property-name>
<value>#{Unf_Id}</value>
</managed-property>
<managed-property>
<property-name>unf_Sigla</property-name>
<value>#{Unf_Sigla}</value>
</managed-property>
<managed-property>
<property-name>unf_Nome</property-name>
<value>#{Unf_Nome}</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>Operadora</managed-bean-name>
<managed-bean-class>br.com.netservice.cadastros.Operadora</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>ope_Id</property-name>
<value>#{Ope_Id}</value>
</managed-property>
<managed-property>
<property-name>ope_Codigo</property-name>
<value>#{Ope_Codigo}</value>
</managed-property>
<managed-property>
<property-name>ope_RazaoSocial</property-name>
<value>#{Ope_RazaoSocial}</value>
</managed-property>
<managed-property>
<property-name>ope_Cnpj</property-name>
<value>#{Ope_Cnpj}</value>
</managed-property>
<managed-property>
<property-name>ope_InscricaoEstadual</property-name>
<value>#{Ope_InscricaoEstadual}</value>
</managed-property>
<managed-property>
<property-name>ope_Endereco</property-name>
<value>#{Ope_Endereco}</value>
</managed-property>
<managed-property>
<property-name>ope_Bairro</property-name>
<value>#{Ope_Bairro}</value>
</managed-property>
<managed-property>
<property-name>ope_Cep</property-name>
<value>#{Ope_Cep}</value>
</managed-property>
<managed-property>
<property-name>ope_Cidade</property-name>
<value>#{Ope_Cidade}</value>
</managed-property>
<managed-property>
<property-name>ope_Site</property-name>
<value>#{Ope_Site}</value>
</managed-property>
<managed-property>
<property-name>ope_Login</property-name>
<value>#{Ope_Login}</value>
</managed-property>
<managed-property>
<property-name>ope_Senha</property-name>
<value>#{Ope_Senha}</value>
</managed-property>
<managed-property>
<property-name>ope_Contato</property-name>
<value>#{Ope_Contato}</value>
</managed-property>
<managed-property>
<property-name>ope_Email</property-name>
<value>#{Ope_Email}</value>
</managed-property>
<managed-property>
<property-name>ope_Telefone</property-name>
<value>#{Ope_Telefone}</value>
</managed-property>
<managed-property>
<property-name>ope_Celular</property-name>
<value>#{Ope_Celular}</value>
</managed-property>
<managed-property>
<property-name>ope_TelefonePos</property-name>
<value>#{Ope_TelefonePos}</value>
</managed-property>
<managed-property>
<property-name>ope_TelefoneTam</property-name>
<value>#{Ope_TelefoneTam}</value>
</managed-property>
<managed-property>
<property-name>ope_DataServicoPos</property-name>
<value>#{Ope_DataServicoPos}</value>
</managed-property>
<managed-property>
<property-name>ope_DataServicoTam</property-name>
<value>#{Ope_DataServicoTam}</value>
</managed-property>
<managed-property>
<property-name>ope_ServicoPos</property-name>
<value>#{Ope_ServicoPos}</value>
</managed-property>
<managed-property>
<property-name>ope_ServicoTam</property-name>
<value>#{Ope_ServicoTam}</value>
</managed-property>
<managed-property>
<property-name>ope_RamalChamadorPos</property-name>
<value>#{Ope_RamalChamadorPos}</value>
</managed-property>
<managed-property>
<property-name>ope_RamalChamadorTam</property-name>
<value>#{Ope_RamalChamadorTam}</value>
</managed-property>
<managed-property>
<property-name>ope_NumeroChamadoPos</property-name>
<value>#{Ope_NumeroChamadoPos}</value>
</managed-property>
<managed-property>
<property-name>ope_NumeroChamadoTam</property-name>
<value>#{Ope_NumeroChamadoTam}</value>
</managed-property>
<managed-property>
<property-name>ope_HoraChamadaPos</property-name>
<value>#{Ope_HoraChamadaPos}</value>
</managed-property>
<managed-property>
<property-name>ope_HoraChamadaTam</property-name>
<value>#{Ope_HoraChamadaTam}</value>
</managed-property>
<managed-property>
<property-name>ope_DuracaoPos</property-name>
<value>#{Ope_DuracaoPos}</value>
</managed-property>
<managed-property>
<property-name>ope_DuracaoTam</property-name>
<value>#{Ope_DuracaoTam}</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>RamalCelular</managed-bean-name>
<managed-bean-class>br.com.netservice.cadastros.RamalCelular</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>rce_Id</property-name>
<value>#{Rce_Id}</value>
</managed-property>
<managed-property>
<property-name>rce_Tipo</property-name>
<value>#{Rce_Tipo}</value>
</managed-property>
<managed-property>
<property-name>rce_DddCidade</property-name>
<value>#{Rce_DddCidade}</value>
</managed-property>
<managed-property>
<property-name>rce_Numero</property-name>
<value>#{Rce_Numero}</value>
</managed-property>
<managed-property>
<property-name>rce_Matricula</property-name>
<value>#{Rce_Matricula}</value>
</managed-property>
<managed-property>
<property-name>rce_Responsavel</property-name>
<value>#{Rce_Responsavel}</value>
</managed-property>
<managed-property>
<property-name>rce_DiretoriaExecutiva</property-name>
<value>#{Rce_DiretoriaExecutiva}</value>
</managed-property>
<managed-property>
<property-name>rce_Diretoria</property-name>
<value>#{Rce_Diretoria}</value>
</managed-property>
<managed-property>
<property-name>rce_GerenciaGeral</property-name>
<value>#{Rce_GerenciaGeral}</value>
</managed-property>
<managed-property>
<property-name>rce_Gerencia</property-name>
<value>#{Rce_Gerencia}</value>
</managed-property>
<managed-property>
<property-name>rce_UnidadeControle</property-name>
<value>#{Rce_UnidadeControle}</value>
</managed-property>
<managed-property>
<property-name>rce_CentroCusto</property-name>
<value>#{Rce_CentroCusto}</value>
</managed-property>
<managed-property>
<property-name>rce_Carrier</property-name>
<value>#{Rce_Carrier}</value>
</managed-property>
<managed-property>
<property-name>rce_LocalInstalacao</property-name>
<value>#{Rce_LocalInstalacao}</value>
</managed-property>
<managed-property>
<property-name>rce_NumeroSerie</property-name>
<value>#{Rce_NumeroSerie}</value>
</managed-property>
<managed-property>
<property-name>rce_Imei</property-name>
<value>#{Rce_Imei}</value>
</managed-property>
<managed-property>
<property-name>rce_Status</property-name>
<value>#{Rce_Status}</value>
</managed-property>
<managed-property>
<property-name>rce_InicioValidade</property-name>
<value>#{Rce_InicioValidade}</value>
</managed-property>
<managed-property>
<property-name>rce_FimValidade</property-name>
<value>#{Rce_FimValidade}</value>
</managed-property>
DaoGenerico
package br.com.netservice.dao;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
public interface DaoGenerico<T, ID extends Serializable> {
public Class<T> getObjectClass();
public T salvar(T object);
public T pesquisarPorId(ID id);
public T atualizar(T object);
public void excluir(T object);
public List<T> todos();
public List<T> listPesqParam(String query, Map<String, Object> params);
public List<T> listPesqParam(String query, Map<String, Object> params,
int maximo, int atual);
public List<T> listPesq(String query);
public T pesqParam(String query, Map<String, Object> params);
}
LocalidadeDao
package br.com.netservice.dao;
import br.com.netservice.cadastros.Localidade;
public interface LocalidadeDao extends DaoGenerico<Localidade, Integer>
{
}
DaoGenericoImp
package br.com.netservice.dao.imp;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.util.List;
import java.util.Map;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import br.com.netservice.dao.DaoGenerico;
@Transactional(readOnly = true, propagation = Propagation.REQUIRED)
public class DaoGenericoImp<T, ID extends Serializable>
implements DaoGenerico<T, ID> {
private EntityManager entityManager;
private final Class<T> oClass;//object class
public Class<T> getObjectClass() {
return this.oClass;
}
@SuppressWarnings("unchecked")
@PersistenceContext
public void setEntityManager(EntityManager em) {
this.entityManager = em;
}
protected EntityManager getEntityManager() {
if (entityManager == null)
throw new IllegalStateException("Erro");
return entityManager;
}
@SuppressWarnings("unchecked")
public DaoGenericoImp() {
this.oClass = (Class<T>)
( (ParameterizedType) getClass().getGenericSuperclass() ).
getActualTypeArguments()[0];
}
@Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public T atualizar(T object) {
getEntityManager().merge(object);
return object;
}
@Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void excluir(T object) {
object = getEntityManager().merge(object);
getEntityManager().remove(object);
}
@Override
public T pesquisarPorId(ID id) {
return (T) getEntityManager().find(oClass, id);
}
@Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public T salvar(T object)
{
System.out.println("passou 11");
getEntityManager().clear();
System.out.println("passou 12");
getEntityManager().persist(object);
System.out.println("passou 13");
return object;
}
@SuppressWarnings("unchecked")
public List<T> todos(){
String queryS = "SELECT obj FROM "+oClass.getSimpleName()+" obj";
Query query = getEntityManager().createQuery(queryS);
return query.getResultList();
}
@SuppressWarnings("unchecked")
public List<T> listPesqParam(String query, Map<String, Object> params){
Query q = getEntityManager().createQuery(query);
for(String chave : params.keySet()){
q.setParameter(chave, params.get(chave));
}
return q.getResultList();
}
@SuppressWarnings("unchecked")
public List<T> listPesqParam(String query, Map<String, Object> params,
int maximo, int atual){
Query q = getEntityManager().
createQuery(query).
setMaxResults(maximo).
setFirstResult(atual);
for(String chave : params.keySet()){
q.setParameter(chave, params.get(chave));
}
return q.getResultList();
}
@SuppressWarnings("unchecked")
public List<T> listPesq(String query){
Query q = getEntityManager().createQuery(query);
return q.getResultList();
}
@SuppressWarnings("unchecked")
public T pesqParam(String query, Map<String, Object> params){
Query q = getEntityManager().createQuery(query);
for(String chave : params.keySet()){
q.setParameter(chave, params.get(chave));
}
try{
return (T) q.getSingleResult();
}catch(NoResultException nre){
return null;
}
}
}
LocalidadeDaoImp
package br.com.netservice.dao.imp;
import br.com.netservice.cadastros.Localidade;
import br.com.netservice.dao.LocalidadeDao;
public class LocalidadeDaoImp extends DaoGenericoImp<Localidade, Integer> implements LocalidadeDao
{
}
bean Localidade
package br.com.netservice.cadastros;
import static javax.persistence.GenerationType.IDENTITY;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import br.com.netservice.controller.LocalidadeController;
@Entity
@Table(name="LOCALIDADE")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Localidade implements Serializable
{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=IDENTITY)
@Column(name="LOC_ID")
public Integer Loc_Id;
@Column(name="LOC_NOME")
public String Nome;
@Column(name="LOC_CIDADE")
public String Cidade;
@Column(name="LOC_ORGANIZACAOINVENTARIO")
public String OrganizacaoInventario;
@Column(name="LOC_CARRIER")
public String Carrier;
@Column(name="LOC_PREFIXO")
public String Prefixo;
@Column(name="LOC_MODELOPABX")
public String ModeloPABX;
@Column(name="LOC_IPPABX")
public String IpPABX;
@Column(name="LOC_DDDCIDADE")
public String DddCidade;
@Column(name="LOC_NOINTERNO")
public String NoInterno;
// @JoinColumn(name="codSubfamilia",insertable=true,updatable=true,nullable=false)
// @ManyToOne(fetch=FetchType.LAZY)
// @JoinColumn(name="unf_id", referencedColumnName="unf_id")
// private UnidadeFederacao unidadeFederecao;
public Localidade()
{
super();
}
public Integer getLoc_Id() {
return this.Loc_Id;
}
public void setLoc_Id(Integer loc_Id) {
this.Loc_Id = loc_Id;
}
public String getDddCidade()
{
return this.DddCidade;
}
public void setDddCidade(String dddCidade) {
this.DddCidade = dddCidade;
}
public String getModeloPABX()
{
return this.ModeloPABX;
}
public void setModeloPABX(String modeloPABX)
{
this.ModeloPABX = modeloPABX;
}
public String getIpPABX()
{
return this.IpPABX;
}
public void setIpPABX(String ipPABX)
{
this.IpPABX = ipPABX;
}
public String getNoInterno()
{
return this.NoInterno;
}
public void setNoInterno(String noInterno)
{
this.NoInterno = noInterno;
}
public String getNome()
{
return this.Nome;
}
public void setNome(String nome)
{
this.Nome = nome;
}
public String getCidade()
{
return this.Cidade;
}
public void setCidade(String cidade)
{
this.Cidade = cidade;
}
public String getOrganizacaoInventario()
{
return this.OrganizacaoInventario;
}
public void setOrganizacaoInventario(String organizacaoInventario)
{
this.OrganizacaoInventario = organizacaoInventario;
}
public String getCarrier()
{
return this.Carrier;
}
public void setCarrier(String carrier)
{
this.Carrier = carrier;
}
public String getPrefixo()
{
return this.Prefixo;
}
public void setPrefixo(String prefixo)
{
this.Prefixo = prefixo;
}
public String inserir()
{
System.out.println(this.getNome());
LocalidadeController localidadeController = new LocalidadeController();
localidadeController.setLocalidade(this);
localidadeController.salvar();
return "sucesso";
/*
Session sessao = SessionFactory.currentSession();
try
{
sessao.beginTransaction();
System.out.println(this.getNome());
sessao.flush();
sessao.save(this);
sessao.beginTransaction().commit();
return "sucesso";
}
catch (Exception excessao)
{
System.out.println(excessao);
return "falhou";
}
finally
{
SessionFactory.closeSession();
}
*/
}
public String pesquisar()
{
System.out.println("passou em pesquisar");
return "lista";
/*
Session sessao = SessionFactory.currentSession();
try
{
StringBuffer qry = new StringBuffer(
"select x from x in class Localidade ");
if ((getNome().isEmpty())||
(getCidade().isEmpty()) ||
(getDddCidade().isEmpty()))
{
qry.append("where locNome like '%");
qry.append("");
qry.append("%' ");
}
qry.append("order by locNome");
List resultSet = sessao.createQuery(qry.toString()).list();
return resultSet;
}
catch (Exception excessao)
{
System.out.println(excessao);
return null;
}
finally
{
SessionFactory.closeSession();
}
*/
}
}
controladora LocalidadeController
package br.com.netservice.controller;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import javax.annotation.Resource;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import br.com.netservice.cadastros.Localidade;
import br.com.netservice.cadastros.UnidadeFederacao;
import br.com.netservice.dao.DaoGenerico;
import br.com.netservice.util.FacesUtils;
@Controller("localidadeController")
@Scope("session")
public class LocalidadeController {
private Localidade localidade;
/*
* Injetado pelo Spring
*
*/
@Resource
private DaoGenerico<Localidade, Integer> localidadeDao;
/*
* Injetado pelo Spring
*
*/
@Resource
private DaoGenerico<UnidadeFederacao, Integer> unidadeFederacaoDao;
public DaoGenerico<Localidade, Integer> getLocalidadeDao() {
return localidadeDao;
}
public void setLocalidadeDao(DaoGenerico<Localidade, Integer> localidadeDao) {
this.localidadeDao = localidadeDao;
}
public DataModel getModel() {
return model;
}
public void setModel(DataModel model) {
this.model = model;
}
public Map<String, Object> getUnidadeFederacaoItem() {
return unidadeFederacaoItem;
}
public void setUnidadeFederacaoItem(Map<String, Object> unidadeFederacaoItem) {
this.unidadeFederacaoItem = unidadeFederacaoItem;
}
public void setUnidadeFederacaoDao(DaoGenerico<UnidadeFederacao, Integer> unidadeFederacaoDao) {
this.unidadeFederacaoDao = unidadeFederacaoDao;
}
public DaoGenerico<UnidadeFederacao, Integer> getUnidadeFederacaoDao() {
return unidadeFederacaoDao;
}
private DataModel model;
private Map<String, Object> unidadeFederacaoItem = null;
public LocalidadeController()
{
// mostrar erro por não inicializar
this.localidade = new Localidade();
// this.localidade.setUnidadeFederacao(new UnidadeFederacao());
}
public void setLocalidade(Localidade localidade) {
this.localidade = localidade;
}
public Localidade getLocalidade() {
return localidade;
}
// preenche o combo com as categorias disponíveis
// no formulário de cadastro de localidades
public Map<String, Object> getUnidadeFederacao() {
unidadeFederacaoItem = new LinkedHashMap<String, Object>();
for (Iterator<?> iter = unidadeFederacaoDao.todos().iterator(); iter.hasNext();) {
UnidadeFederacao c = (UnidadeFederacao) iter.next();
unidadeFederacaoItem.put(c.getUnf_Sigla(), c.getUnf_Id());// label,value
}
return unidadeFederacaoItem;
}
public String novaLocalidade() {
this.localidade = new Localidade();
// this.localidade.setUnidadeFederacao(new UnidadeFederacao());
this.getUnidadeFederacao();
return "formLocalidade";
}
// mostra todos os localidades em um DataTable
public DataModel getTodos() {
model = new ListDataModel(localidadeDao.todos());
return model;
}
// salva o localidade
public String salvar()
{
try
{
System.out.println("passou 1");
// se não há um id,
// estamos com um novo registro
//this.localidade = new Localidade();
//System.out.println("passou construtor");
if (localidade.getLoc_Id() == null)
{
System.out.println("passou 2 mesmo");
System.out.println(localidade.getNome());
//localidade.setLoc_Id(-1);
localidadeDao.salvar(localidade);
System.out.println("passou 3");
FacesUtils.mensInfo("Cadastrado com sucesso");
}
else
{
// pega a categoria escolhida para atualização
// UnidadeFederacao unidadeFederacao = unidadeFederacaoDao.pesquisarPorId(localidade.getUnidadeFederacao()
// .getUnf_Id());
// altera
// localidade.setUnidadeFederacao(unidadeFederacao);
// atualiza o localidade
localidadeDao.atualizar(localidade);
System.out.println("passou 4");
FacesUtils.mensInfo("Atualizado com sucesso");
}
}
catch
(Exception e) {
FacesUtils.mensErro("Um erro ocorreu");
e.printStackTrace();
}
return "sucesso";
}
public Localidade getLocalidadeParaEditarExcluir() {
Localidade localidade = (Localidade) model.getRowData();
return localidade;
}
public String editar() {
setLocalidade(getLocalidadeParaEditarExcluir());
return "formLocalidade";
}
public String excluir() {
Localidade localidade = getLocalidadeParaEditarExcluir();
localidadeDao.excluir(localidade);
return "mostrarLocalidades";
}
}
E por fim o arquivo localidade.jsp (este arquivo está deste jeito, mas pretendo passá-lo para xhtml)…
[color=blue]<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h” %>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<f:view>
O erro que está acontecendo agora é o seguinte: 01/01 05:24 ERROR [ProcessValidationsPhase] Error testing property ‘nome’ in bean of type null.
Pelo que pesquisei, está tentando testar um propriedade de um bean que está nulo… mas não estou conseguindo solucionar o erro… alguém pode me dar uma força aí… eu já fiz de tudo… o erro pode estar também nos arquivos xml (pode estar precisando de carregar alguma biblioteca…) … etc, … obrigado