[AJUDA] Hibernate no programa WEB

7 respostas
D

Ola, boa tarde.. preciso muito urgente desenvolver um simples crud com hibernate/JSP..

Mas estou com muita difciculdade em chamar os metodos da classe DAO pro formulario.. por enquanto so quero inserir dados no banco

Meu codigo:

CLIENTEDAO
package persistencia.com;

import java.util.List;
import modelo.com.Cliente;
import org.hibernate.*;
import org.hibernate.cfg.AnnotationConfiguration;

public class ClienteDAO {

    private static SessionFactory factory;
    private static AnnotationConfiguration cfg;

    private static Session getSession() {
        return factory.openSession();
    }
    static {
        cfg = new AnnotationConfiguration();
        cfg.configure();
        factory = cfg.buildSessionFactory();
    }
    public static void inserir(Cliente c) {
        getSession().beginTransaction();
        getSession().save(c);
        getSession().getTransaction().commit();
        getSession().close();
    }
    public static void deletar(Cliente c) {
        getSession().beginTransaction();
        getSession().delete(c);
        getSession().getTransaction().commit();
        getSession().close();
    }
    public static void atualizar(Cliente c) {
        getSession().beginTransaction();
        getSession().update(c);
        getSession().getTransaction().commit();
        getSession().close();
    }
    public static List listar(String estac) {
        Query query = getSession().createQuery("from "+estac);
        return query.list();
    }  
}
CONTROLE:
<%@page import="modelo.com.Cliente, persistencia.com.ClienteDAO" %>

<%
try{

String action = request.getParameter("action");

    if(action.equalsIgnoreCase("inserir")){
        Cliente c = new Cliente();
        c.setCpf(request.getParameter("cpf"));
        c.setNome(request.getParameter("nome"));
        c.setPlaca(request.getParameter("placa"));
        c.setModelo(request.getParameter("modelo"));
        c.setCor(request.getParameter("cor"));
        ClienteDAO cd = new ClienteDAO();
        try{
        cd.inserir(c);
        request.setAttribute("msg", "Cadastrado com sucesso!");
        request.getRequestDispatcher("index.jsp").forward(request, response);

        }catch(Exception e){
        out.print("Erro:"+e.getMessage());
        }
        }

}catch(NullPointerException nexp){
out.print("Você deveria estar vendo este aviso");

}
INDEX:
<%@page import="modelo.com.Cliente, persistencia.com.ClienteDAO" %>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Página principal</title>
    <body>
        <form action="controle.jsp?action=inserir" method="post">
            <label for="cpf">Cpf:</label><br />
            <input type="text" name="cpf" value="" /><br />
            <label for="nome">Nome:</label><br />
            <input type="text" name="nome" value="" /><br />
            <label for="placa">Placa:</label><br />
            <input type="text" name="placa" value="" /><br />
            <label for="modelo">Modelo:</label><br />
            <input type="text" name="modelo" value="" /><br />
            <label for="cor">Cor:</label><br />
            <input type="text" name="cor" value="" /><br />
            <input type="submit" value="Cadastrar Cliente" />
        </form><br />
        <font color="#FF0000">
        ${msg}
        </font>
        <br />
        <br />
    </body>
</html>
Arquivo de Configuraçao:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/est2</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">dan.maia</property>
    <property name="hibernate.show_sql">true</property>
    <mapping resource="hibernate.hbm.xml"/>
  </session-factory>
</hibernate-configuration>
ARQUIVO DE MAPEAMENTO:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
  <class name="modelo.com.Cliente" table="estac">
      <id name="cpf" column="cpf" type="string">
            <generator class="assigned"/>
        </id>
        <property name="nome" type="string"/>
        <property name="placa" column="fone" type="string"/>
        <property name="modelo" column="cel" type="string"/>
        <property name="cor" type="string"/>  
    </class>
</hibernate-mapping>
Arquivo de configuraçao:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/est2</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">dan.maia</property>
    <property name="hibernate.show_sql">true</property>
    <mapping resource="../../Cliente.hbm.xml"/>
    <mapping resource="Cliente.hbm.xml"/>
  </session-factory>
</hibernate-configuration>

O programa nao da erro Quando abro a pag principal aparec tudo blz.. mas qndo vai gravar no banco aparece o seguinte erro:

org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class persistencia.com.ClienteDAO
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717

7 Respostas

D

up

barbon

Teria como postar o log completo do erro?

D

Ola…

Primeiramente obrigado pela atençao…

Segue o erro:

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

exception

org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.ExceptionInInitializerError

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

javax.servlet.ServletException: java.lang.ExceptionInInitializerError

org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)

org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)

org.apache.jsp.controle_jsp._jspService(controle_jsp.java:93)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.lang.ExceptionInInitializerError

org.apache.jsp.controle_jsp._jspService(controle_jsp.java:69)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

org.hibernate.MappingNotFoundException: resource: …/…/Cliente.hbm.xml not found

org.hibernate.cfg.Configuration.addResource(Configuration.java:563)

org.hibernate.cfg.AnnotationConfiguration.addResource(AnnotationConfiguration.java:912)

org.hibernate.cfg.AnnotationConfiguration.parseMappingElement(AnnotationConfiguration.java:617)

org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)

org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534)

org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:1002)

org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:69)

org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508)

org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:990)

org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:69)

org.hibernate.cfg.Configuration.configure(Configuration.java:1428)

org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:972)

org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:69)

org.hibernate.cfg.Configuration.configure(Configuration.java:1414)

org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:966)

persistencia.com.ClienteDAO.(ClienteDAO.java:23)

org.apache.jsp.controle_jsp._jspService(controle_jsp.java:69)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

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

</blockquote>
barbon

Olá,

Pelo erro apresentado, existe algum problema com o seu arquivo Cliente.hbm.xml, como está o mapeamento da entidade Cliente?

D

<?xml version="1.0" encoding="UTF-8"?>

D
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
  <class name="modelo.com.Cliente" table="estac">
      <id name="cpf" column="cpf" type="string">
            <generator class="assigned"/>
        </id>
        <property name="nome" type="string"/>
        <property name="placa" column="fone" type="string"/>
        <property name="modelo" column="cel" type="string"/>
        <property name="cor" type="string"/>  
    </class>
</hibernate-mapping>
barbon

O hibernate não está encontrando o mapeamento… acho que a referencia para o xml da entidade está com problemas.

Criado 19 de janeiro de 2011
Ultima resposta 20 de jan. de 2011
Respostas 7
Participantes 2