[Problema Resolvido]Aplicação com Struts e hibernate dando erro

Galera a questão e a seguinte eu estou tentando fazer um aplicação teste aqui Struts com hibernate só que esta gerando um erro na hora de rodar.

Esse erro no bronser:

HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet execution threw an exception

root cause

java.lang.NoClassDefFoundError: org/hibernate/Session
br.com.caelum.struts.action.AdicionaContatoAction.execute(AdicionaContatoAction.java:24)
org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

java.lang.ClassNotFoundException: org.hibernate.Session
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)
java.lang.ClassLoader.loadClassInternal(Unknown Source)
br.com.caelum.struts.action.AdicionaContatoAction.execute(AdicionaContatoAction.java:24)
org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.

import br.com.caelum.struts.form.ContatoForm;

public class AdicionaContatoAction extends Action {
	public ActionForward execute(ActionMapping map, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
	throws Exception, IllegalStateException, RollbackException, HeuristicMixedException, HeuristicRollbackException, SystemException{
		
		Session session = new HibernateFactory().getSession();
		org.hibernate.Transaction transaction = session.beginTransaction(); //Iniciando uma transação
		
		// adiciona ao banco de dados
		ContatoDAO dao = new ContatoDAO(session);
		
		// log
		System.out.println("Tentando criar um novo contato...");
		
		// formulário de cliente
		ContatoForm formulario = ((ContatoForm) form);
		// acessa o bean
		Contato contato = formulario.getContato();
		// adiciona ao banco de dados
		dao.salva(contato);
		// ok.... visualização
		return map.findForward("ok");

	}
}
package br.com.caelum.struts.action;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateFactory {
	private static SessionFactory factory;
	
	static {
		AnnotationConfiguration cfg = new AnnotationConfiguration();
		cfg.addAnnotatedClass(Contato.class);
		factory = cfg.buildSessionFactory();
	}
	public static Session getSession() {
		return factory.openSession();
	}

}

e aqui esta o meu arquivo hibernate.properties

hibernate.dialect org.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class com.mysql.jdbc.Driver
hibernate.connection.url jdbc:mysql://localhost:3306/contato
hibernate.connection.username root
hibernate.connection.password

Desde de já eu agradeço pela ajuda.

Colega,
Aparentemente o seu problema é a falta do Jar do hibernate no seu WEB-INF/lib.
Verfique se vc está colocando lá. O fato é que se vc está acessando classes do Hibernate em sua camada de apresentação (feita com Struts) e você precisa ter a lib no seu WEB-INF, pois o container web é separado do container EJB, por exemplo.

Verifique isso, se não resolver é só chamar no forum.

Sorte

Por brother viajei legal aqui rs.

Mais a questão dos jars ajudou pois acusou o erro da classe Contato.

Porque como eu estava usando annotations no hibernate.

a minha classe Contato estava assim.

package br.com.caelum.jdbc.modelo;

public class Contato {
private Long id;
private String nome;
private String endereco;
private String email;

public Contato(){
	
}

public Long getId() {
	return id;
}
public void setId(Long id) {
	this.id = id;
}
public String getNome() {
	return nome;
}
public void setNome(String nome) {
	this.nome = nome;
}
public String getEndereco() {
	return endereco;
}
public void setEndereco(String endereco) {
	this.endereco = endereco;
}

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

}

e tinha que estar assim:

package br.com.caelum.struts.action;

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

@Entity
public class Contato {
@Id @GeneratedValue
private int id;
@Column(name = “nome”, nullable = false, length = 50)
private String nome;
@Column(name = “endereco”, nullable = false, length = 50)
private String endereco;
@Column(name = “email”, nullable = false, length = 50)
private String email;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}

public String getEndereco() {
	return endereco;
}
public void setEndereco(String endereco) {
	this.endereco = endereco;
}
public String getEmail() {
	return email;
}
public void setEmail(String email) {
	this.email = email;
}

}

Mais agora já estar tudo funcionando, graça a Deus.

Valeu aí miguel.horlle!!!

falow!!!