Erro na integração do Struts com o Hibernate

4 respostas
R

E ai pessoal blz?
Estou tendo problemas para integrar o struts com o hibernate, quando testo os dois separados vai tudo bem, mais quando na classe Action do Struts chamo o insere do ClienteDAO da erro.

Abaixo estou colocando o código fonte:

ClienteAction

package br.com.cliente.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import br.com.cliente.bean.Cliente;
import br.com.cliente.dao.ClienteDAO;
import br.com.cliente.form.ClienteForm;

public class ClienteAction extends DispatchAction {
	private ClienteDAO dao;
	
	public ClienteAction() {
		// TODO Auto-generated constructor stub
		dao = new ClienteDAO();
	}
	
	public ActionForward cadastrar(ActionMapping mapping, 
			ActionForm form, HttpServletRequest request, 
			HttpServletResponse response) {
			ClienteForm funForm = ((ClienteForm) form);
			Cliente bean = funForm.getBean();
			bean.setStatus("ATIVO");
			try {
				dao.insere(bean);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return (mapping.findForward("cadastrar"));	
	}
...Tem mais codigo mais para os outros metodos

ClienteDAO

package br.com.cliente.dao;

import java.util.Iterator;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import br.com.cliente.bean.Cliente;


public class ClienteDAO {
	private SessionFactory sf;
	
	public ClienteDAO() {
		sf = new Configuration().addClass(Cliente.class).buildSessionFactory();
	}
	
	public void insere(Cliente cli) throws Exception {
		Session sessao = sf.openSession();
		Transaction t = sessao.beginTransaction();
		sessao.save(cli);
		sessao.flush(); //sincronia da aplicação com o SGBD
		t.commit();
		sessao.close();
	}
...Tem mais codigo mais para os outros metodos

ClienteTeste (Soh para testar se o hibernate esta funcionado, AQUI DEU CERTO)

package br.com.cliente.dao;
import javax.swing.JOptionPane;

import br.com.cliente.bean.Cliente;

public class ClienteTeste {
	private Cliente cli;
	private ClienteDAO pers;
	
	public ClienteTeste() {
		// TODO Auto-generated constructor stub
		cli = new Cliente();
		pers = new ClienteDAO();
	}
	public void cadastrar(){
		cli.setCodigo(Integer.parseInt(JOptionPane.showInputDialog("Informe o Codigo:")));
		cli.setNome(JOptionPane.showInputDialog("Informe o Nome:"));
		cli.setTelefone(JOptionPane.showInputDialog("Informe o Telefone:"));
		cli.setCidade(JOptionPane.showInputDialog("Informe o Cidade:"));
		cli.setEstado(JOptionPane.showInputDialog("Informe o Estado:"));
		cli.setRua(JOptionPane.showInputDialog("Informe o Rua:"));
		cli.setBairro(JOptionPane.showInputDialog("Informe o Bairro:"));
		cli.setComplemento(JOptionPane.showInputDialog("Informe o Complemento:"));
		cli.setCpf(JOptionPane.showInputDialog("Informe o seu CPF:"));
		cli.setRg(JOptionPane.showInputDialog("Informe o RG:"));
		cli.setUsuario(JOptionPane.showInputDialog("Informe o Usuario:"));
		cli.setSenha(JOptionPane.showInputDialog("Informe a sua Senha:"));
		cli.setStatus("ATIVO");
		try {
			pers.insere(this.cli);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
...Tem mais codigo mais para os outros metodos

Esse é o erro que da na minha pagina

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.cliente.action.ClienteAction.<init>(ClienteAction.java:18)
	sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	java.lang.reflect.Constructor.newInstance(Constructor.java:494)
	java.lang.Class.newInstance0(Class.java:350)
	java.lang.Class.newInstance(Class.java:303)
	org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:143)
	org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:292)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:230)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


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

Se alguém puder me ajudar eu agradeço

Valeu pessoal

4 Respostas

alberto_ribeiro

Bom dia, então pelo erro você deve ter esquecido algum JAR, verifique se colocou todos…

[]'s

R

alberto_ribeiro:
Bom dia, então pelo erro você deve ter esquecido algum JAR, verifique se colocou todos…

[]'s

o estranho é que sim, tanto que no ClienteTeste ele funciona normalmente

M

Também estou com o mesmo problema…
por favor, se o autor resolveu, exponha a solução…

rodrigoallemand

Seu problema é Classpath… ou vc não colocou a biblioteca na pasta correta ou a sua biblioteca está corrompida. Lembre-se que o pacote org.hibernate é da versão 3. As anteriores são ligadas ao SourceForge ainda.

Criado 22 de abril de 2007
Ultima resposta 26 de out. de 2007
Respostas 4
Participantes 4