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>