Estou desenvolvendo uma pequena aplicacao no Eclipse que se resume no seguinte:
Uma pagina JSP que coleta tres entradas de texto envia para uma servlet que instancia uma entidade para receber essas tres entradas, passa essa entidade para a DAO que deve conectar com o banco mySQL usando hibernate para persistir os dados.
Depois de muito custo acho que consegui fazer o que eu queria, ficou assim:
Inicialmente tenho um formulario que coleta três entradas:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Demonstração Final</title>
</head>
<body>
<div style="text-align: center">
<form id="formularioDemo" action="Demo" method="post">
Entrada 1<input name="entrada1" type="text"><br />
Entrada 2<input name="entrada2" type="text"><br />
Entrada 3<input name="entrada3" type="text"><br /><br />
<input value="Enviar" type="submit">
</form>
</div>
</body>
</html>
Depois tenho as servlet que recebe a requisição do formulário:
package fpu.buffet.controller;
import java.io.IOException;
import java.io.PrintWriter;
import java.rmi.ServerException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import fpu.buffet.dao.DemoDAO;
import fpu.buffet.to.Demo;
public class DemoServlet extends HttpServlet {
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServerException, IOException, ServletException {
String entrada1 = request.getParameter("entrada1");
String entrada2 = request.getParameter("entrada2");
String entrada3 = request.getParameter("entrada3");
Demo myDemo = new Demo();
myDemo.setEntrada1(entrada1);
myDemo.setEntrada2(entrada2);
myDemo.setEntrada3(entrada3);
DemoDAO myDemoDAO = new DemoDAO();
myDemoDAO.persisteDemo(myDemo);
}
}
A entidade Demo está assim:
package fpu.buffet.to;
public class Demo {
private Object entrada1;
private Object entrada2;
private Object entrada3;
public void setEntrada1(Object entrada1){
this.entrada1 = entrada1;
}
public Object getEntrada1(){
return entrada1;
}
public void setEntrada2(Object entrada2){
this.entrada2 = entrada2;
}
public Object getEntrada2(){
return entrada2;
}
public void setEntrada3(Object entrada3){
this.entrada3 = entrada3;
}
public Object getEntrada3(){
return entrada3;
}
}
DemoDAO ficou assim:
package fpu.buffet.dao;
import org.hibernate.*;
import fpu.buffet.dao.hibernate.HibernateUtility;
import fpu.buffet.to.Demo;
public class DemoDAO {
public void persisteDemo(Object presiste){
Session sessao = HibernateUtility.getSession(); //Abrindo uma sessão
Transaction transaction = sessao.beginTransaction(); //Iniciando uma transação
sessao.save(presiste); //Transformando o objeto transiente em um objeto persistente no banco de dados
transaction.commit(); //Finalizando a transação
sessao.close(); //Fechando a sessão
}
}
HibernateUtility para iniciar a sessão:
package fpu.buffet.dao.hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtility {
private static SessionFactory factory;
static {
try {
factory = new Configuration().configure().buildSessionFactory();
} catch (Exception e) {
e.printStackTrace();
factory = null;
}
}
public static Session getSession() {
return factory.openSession();
}
}
O problema é que quando rodo o trem dá erro:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
fpu.buffet.dao.hibernate.HibernateUtility.getSession(HibernateUtility.java:26)
fpu.buffet.dao.DemoDAO.persisteDemo(DemoDAO.java:12)
fpu.buffet.controller.DemoServlet.doPost(DemoServlet.java:30)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
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.20 logs.
Apache Tomcat/6.0.20
Alguém, por favor, consegue me ajudar a resolver o problema acima?