Java.lang.NoClassDefFoundError: Could not initialize class util.HibernateUtil

Boa noite!

Estou iniciando em JAVA para Web com Hibernate, com o auxilio do Livro do Décio e ao implementar uma simples tela de cadastro ocorre o seguinte erro:

java.lang.NoClassDefFoundError: Could not initialize class util.HibernateUtil.

Estou utilizando Eclipse.

Segue abaixo o código;

[code]

package util;

import teste.faleconosco.faleConoscoDAO;
import teste.faleconosco.faleConoscoDAOHibernate;

public class DAOFactory {

public static faleConoscoDAO criarFaleConosco() {
	faleConoscoDAOHibernate faleconoscodao = new faleConoscoDAOHibernate();
	faleconoscodao.setSessao(HibernateUtil.getSessionFactory().getCurrentSession());
	return faleconoscodao;
}

}

[code]

package util;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateUtil {

private static final SessionFactory	sessionFactory	= buildSessionFactory();

private static SessionFactory buildSessionFactory() {
	try {
		AnnotationConfiguration cfg = new AnnotationConfiguration();
		cfg.configure("hibernate.cfg.xml");
		return cfg.buildSessionFactory();
	} catch (Throwable e) {
		System.out.println("Criação inicial do objeto SessionFactory falhou. Erro: " + e);
		throw new ExceptionInInitializerError(e);
	}
} 

public static SessionFactory getSessionFactory() {
	return sessionFactory;
}

}

[code]

package teste.faleconosco;

import java.io.Serializable;

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

@Entity
@Table(name = “fale_conosco”)
public class faleConosco implements Serializable {

private static final long serialVersionUID = 4898076981171095211L;

@Id
@GeneratedValue
@Column(name = "Codigo_FC")
private Integer	codigoFC;

@Column(name = "Nome", length = 50, nullable = false)
private String	Nome;

@Column(name = "Telefone", length = 25, nullable = true)
private String	Telefone;

@Column(name = "Email", length = 200, nullable = false)
private String	Email;

@Column(name = "Assunto", length = 45, nullable = false)
private String	Assunto;

@Column(name = "Descricao", length = 100, nullable = false)
private String	Descricao;

public Integer getCodigoFC() {
	return codigoFC;
}

public void setCodigoFC(Integer codigoFC) {
	this.codigoFC = codigoFC;
}

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 getEmail() {
	return Email;
}

public void setEmail(String email) {
	this.Email = email;
}

public String getAssunto() {
	return Assunto;
}

public void setAssunto(String assunto) {
	this.Assunto = assunto;
}

public String getDescricao() {
	return Descricao;
}

public void setDescricao(String descricao) {
	this.Descricao = descricao;
}

@Override
public int hashCode() {
	final int prime = 31;
	int result = 1;
	result = prime * result + ((Assunto == null) ? 0 : Assunto.hashCode());
	result = prime * result
			+ ((Descricao == null) ? 0 : Descricao.hashCode());
	result = prime * result + ((Email == null) ? 0 : Email.hashCode());
	result = prime * result + ((Nome == null) ? 0 : Nome.hashCode());
	result = prime * result
			+ ((Telefone == null) ? 0 : Telefone.hashCode());
	result = prime * result
			+ ((codigoFC == null) ? 0 : codigoFC.hashCode());
	return result;
}

@Override
public boolean equals(Object obj) {
	if (this == obj)
		return true;
	if (obj == null)
		return false;
	if (getClass() != obj.getClass())
		return false;
	faleConosco other = (faleConosco) obj;
	if (Assunto == null) {
		if (other.Assunto != null)
			return false;
	} else if (!Assunto.equals(other.Assunto))
		return false;
	if (Descricao == null) {
		if (other.Descricao != null)
			return false;
	} else if (!Descricao.equals(other.Descricao))
		return false;
	if (Email == null) {
		if (other.Email != null)
			return false;
	} else if (!Email.equals(other.Email))
		return false;
	if (Nome == null) {
		if (other.Nome != null)
			return false;
	} else if (!Nome.equals(other.Nome))
		return false;
	if (Telefone == null) {
		if (other.Telefone != null)
			return false;
	} else if (!Telefone.equals(other.Telefone))
		return false;
	if (codigoFC == null) {
		if (other.codigoFC != null)
			return false;
	} else if (!codigoFC.equals(other.codigoFC))
		return false;
	return true;
}

public boolean Salvar() { return true; }

}

[code]

package teste.faleconosco;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import teste.faleconosco.faleConoscoOper;
import teste.faleconosco.faleConosco;

@ManagedBean(name=“faleConoscoBean”)
@RequestScoped

public class faleConoscoBEAN {

private faleConosco faleconosco = new faleConosco();

public void Salvar()
{	
	faleConoscoOper faleconesoper = new faleConoscoOper();
	faleconesoper.Salvar(this.faleconosco);
}

public faleConosco getFaleconosco() {
	return faleconosco;
}

public void setFaleconosco(faleConosco faleconosco) {
	this.faleconosco = faleconosco;
}

}

[code]

package teste.faleconosco;

public interface faleConoscoDAO {

public void Salvar(faleConosco faleconosco);

}

package teste.faleconosco; import org.hibernate.Session;

public class faleConoscoDAOHibernate implements faleConoscoDAO {

private Session Sessao;

public void setSessao(Session Sessao){
	this.Sessao = Sessao;
}

@Override
public void Salvar(faleConosco faleconosco) {
	// TODO Auto-generated method stub
	this.Sessao.save(faleconosco);
}

}

[code]

package teste.faleconosco; import util.DAOFactory;

public class faleConoscoOper {

private faleConoscoDAO faleconoscoDAO;

public faleConoscoOper()
{
	this.faleconoscoDAO = DAOFactory.criarFaleConosco();
}

public void Salvar (faleConosco faleconosco)
{
	Integer Codigo = faleconosco.getCodigoFC();
	
	if (Codigo == null || Codigo == 0)
	{
		this.faleconoscoDAO.Salvar(faleconosco);
	}
}

}

<Arquivo de configuração>

<?xml version='1.0' encoding='utf-8'?> org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/teste root aaaaaa thread update
	<!-- Usando as configurações do C3PO para pool de conexões -->
	<!--<property name="c3po.min_size">5</property>
	<property name="c3po.max_size">20</property>
	<property name="c3po.timeout">300</property>
	<property name="c3po.max_statements">50</property>
	<property name="c3po.idle_test_period">3000</property>-->
	
	<!-- Configurações de debug -->
	<!--
	<property name="show_sql">true</property>
	<property name="format_sql">true</property>
	<property name="generate_statistics">true</property>
	<property name="use_sql_comments">true</property>
	--> 	
	
	<!-- Mapeando recursos -->
	<mapping resource="util/faleConosco.hbm.xml"/>	
	
	<!-- Mapeando classes -->
	<mapping class="teste.faleconosco.faleConosco"/>
	
</session-factory>

formate seu codigo dentro de [code] para a gente poder entender assim fica dificil… grato