Java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration

3 respostas
johnny_g3p

Galera estou com um problema com hibernate e não estou conseguindo resolver a algum tempo.

tento rodar meu programa e gera o seguinte erro

root cause 

java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
	br.com.wincomp.empresa.Gerenciador.salvarEmpresa(Gerenciador.java:13)
	br.com.wincomp.empresa.GravarEmpresa.doGet(GravarEmpresa.java:32)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


root cause 

java.lang.ClassNotFoundException: org.hibernate.cfg.Configuration
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
	br.com.wincomp.empresa.Gerenciador.salvarEmpresa(Gerenciador.java:13)
	br.com.wincomp.empresa.GravarEmpresa.doGet(GravarEmpresa.java:32)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

meu Servlet

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/GravarEmpresa")
public class GravarEmpresa extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String empresa = request.getParameter("empresa");
		String valorHora = request.getParameter("valorHora");
		
		response.setContentType("text/html;charset=ISO-8859-1");
		PrintWriter out = response.getWriter();
		out.println("<head>");
		out.println("<title>Gravando Empresa no Hibernate</title>");
		out.println("<LINK href=estilo.css type=text/css rel = stylesheet");
		out.println("</head>");
		out.println("<html>");
		out.println("<body>");
		out.println("<h2>Gravando Eventos no HGibernate</h2>");
		out.println("Empresa:"+empresa+"br");
		out.println("Valor Hora:"+valorHora+"br");
		Gerenciador g = new Gerenciador();
		g.salvarEmpresa(empresa, valorHora);
		out.println("</body>");
		out.println("</html>");
		out.close();
		
	}

}
import org.hibernate.*;
import org.hibernate.cfg.*;


public class Gerenciador {
	
	@SuppressWarnings("deprecation")
	public void salvarEmpresa(String empresa,String valorHora){
		
		try{
			SessionFactory sf = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
			Session s = sf.openSession();
			Transaction tx = s.beginTransaction();
			Empresa e = new Empresa();
			e.setEmpresa(empresa);
			e.setValorHora(valorHora);
			s.saveOrUpdate(e);
			tx.commit();
			s.close();
			System.out.println("Evento Incluido");
			
		}catch (Exception e) {
			System.out.println("Erro" + e.getMessage());
			
		}
		
	}
	
	

}

3 Respostas

drsmachado

Quais jars estão no classpath da aplicação? Quais estão na pasta lib, dentro de WEB-INF?

Vyccus

Provavelmente os jars não estão dentro do diretório lib que fica dentro da WEB-INF.

rodrigo.ferreira

Olá, bom dia!

Verifique se os .jars do Hibernate estão dentro do “WEB-INF/lib” do seu projeto WEB ou se está dentro da pasta LIB do seu servidor de aplicações.

Cuidado: Caso você tenha uma versão do .jar dentro da “WEB-INF/lib” E OUTRA dentro da LIB do seu servidor de aplicações, você pode ter o problema de “Classloader Hell”, quando a JVM pode carregar partes de uma classe e partes da outra, podendo ter grandes efeitos colaterais. Deixe sempre em um lugar só: Ou na “WEB-INF/lib” do seu projeto (recomendado) OU no servidor de aplicações, nunca nos dois.

Abraço,

Criado 12 de junho de 2012
Ultima resposta 14 de jun. de 2012
Respostas 3
Participantes 4