Olá pessoal, estou tentando desenvolver meu primeiro programinha utilizando Hibernate. Segue abaixo o código
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>
index.jsp
</welcome-file>
</welcome-file-list>
</web-app>
Pessoa.java
public class Pessoa {
private String nome;
private String email;
private String telefone;
// métodos gets e sets
}
Pessoa.hbm.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE hibernate-mapping (View Source for full doctype...)>
- <hibernate-mapping default-cascade="none" default-access="property" default-lazy="true" auto-import="true">
- <class name="Pessoa" mutable="true" polymorphism="implicit" dynamic-update="false" dynamic-insert="false" select-before-update="false" optimistic-lock="version">
- <!-- Identificador da classe
-->
- <id name="id">
<generator class="increment" />
</id>
- <!-- Propriedades da classe
-->
<property name="nome" unique="false" optimistic-lock="true" lazy="false" generated="never" />
<property name="telefone" unique="false" optimistic-lock="true" lazy="false" generated="never" />
<property name="email" unique="false" optimistic-lock="true" lazy="false" generated="never" />
- <!-- Relacionamento da classe
</class>
</hibernate-mapping>
PessoaDAO.java
package com.hibernate.teste;
import org.hibernate.Session;
import org.hibernate.StatelessSession;
import org.hibernate.SessionFactory;
import com.hibernate.teste.*;
import org.hibernate.Transaction;
public class PessoaDAO {
public PessoaDAO () {
Session sessao = HibernateUtility.getSession();
Transaction transaction = sessao.beginTransaction();
Pessoa pessoa = new Pessoa();
pessoa.setNome("Ricardo");
pessoa.setTelefone("telefone");
pessoa.setEmail("email");
sessao.save(pessoa);
transaction.commit();
sessao.close();
}
}
HibernateUtility.java
package com.hibernate.teste;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtility {
private static SessionFactory factory;
static {
//Bloco estático que inicializa o Hibernate
try {
factory = new Configuration().configure().buildSessionFactory();
} catch (Exception e) {
e.printStackTrace();
factory = null;
}
}
public static Session getSession() {
//Retorna a sessão aberta
return factory.openSession();
}
}
hibernate.cfg.xml
<!DOCTYPE hibernate-configuration (View Source for full doctype...)>
- <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/pessoa?autoReconnect=true</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password" />123456</property>
- <!-- Condiguração do c3p0
-->
<property name="hibernate.c3p0.max_size">10</property>
<property name="hibernate.c3p0.min_size">2</property>
<property name="hibernate.c3p0.timeout">5000</property>
<property name="hibernate.c3p0.max_statements">10</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.c3p0.acquire_increment">2</property>
- <!-- Configurações de debug
-->
<property name="show_sql">true</property>
<property name="use_outer_join">true</property>
<property name="hibernate.generate_statistics">true</property>
<property name="hibernate.use_sql_comments">true</property>
<mapping resource="Pessoa.hbm.xml" />
</session-factory>
</hibernate-configuration>
index.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ page import="com.hibernate.teste.*"%>
<%@ page import="java.util.*" %>
<%
PessoaDAO pessoaDAO = new PessoaDAO();
%>
[color=red]Está compilando sem nenhum erro no Netbeans, porém ao executar é exibido o seguinte Exception no browser:[/color]
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
root cause
java.lang.NullPointerException
com.hibernate.teste.HibernateUtility.getSession(HibernateUtility.java:45)
com.hibernate.teste.PessoaDAO.<init>(PessoaDAO.java:30)
org.apache.jsp.index_jsp._jspService(index_jsp.java:53)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs.
[color=blue]Alguem pode me ajudar a resolver este problema? Agradeço desde já a ajuda de todos
Wallfox[/color]