Olá, estou tentando inicializar uma nova sessão no hibernate via Servlet, para trazer uma consulta, e está me retornando erro.
segue o erro:
SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Erroorg.hibernate.HibernateException: JDBC Driver class not found: org.gjt.mm.mysql.Driver
27/11/2012 09:54:11 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [CadastroUfsServlet] in context with path [/CadastroFiliais] threw exception [Servlet execution threw an exception] with root cause
java.lang.ExceptionInInitializerError
at br.com.intranet.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:22)
at br.com.intranet.util.HibernateUtil.(HibernateUtil.java:10)
at br.com.intranet.dao.CadastroCidadesDao.(CadastroCidadesDao.java:32)
at br.com.intranet.servlet.CadastroUfsServlet.processRequest(CadastroUfsServlet.java:28)
at br.com.intranet.servlet.CadastroUfsServlet.doGet(CadastroUfsServlet.java:37)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:383)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
meu servlet:
package br.com.intranet.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import br.com.intranet.dao.CadastroCidadesDao;
import br.com.intranet.dao.CadastroUfsDao;
import br.com.intranet.vo.CadastroCidades;
import br.com.intranet.vo.CadastroUfs;
import com.sun.xml.internal.ws.util.Pool.Marshaller;
@WebServlet(name="CadastroUfsServlet", urlPatterns={"/cadastroUfsServlet"})
public class CadastroUfsServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/xml;charset=UTF-8");
PrintWriter out = response.getWriter();
String action = request.getParameter("action");
if ("preencherCidades".equalsIgnoreCase(action)) {
System.out.println("Preechendo cidades ...");
int estado = Integer.parseInt(request.getParameter("estado"));
System.out.println("Estado selecionado: " + estado);
CadastroCidadesDao cadcidD = new CadastroCidadesDao();
List<CadastroCidades> listCidade = cadcidD.listAll();
try {
JAXBContext ctx = JAXBContext.newInstance(CadastroCidades.class);
javax.xml.bind.Marshaller marshaller = ctx.createMarshaller();
marshaller.marshal(listCidade, out);
} catch (JAXBException e) {
throw new ServletException(e);
}
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}
meu hibernateUtil:
package br.com.intranet.util;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.Session;
public class HibernateUtil {
private static final SessionFactory sF = buildSessionFactory();
private static final ThreadLocal threadSession = new ThreadLocal();
private static final ThreadLocal threadTransaction = new ThreadLocal();
private static final ThreadLocal threadInterceptor = new ThreadLocal();
public static SessionFactory buildSessionFactory(){
try{
Configuration cfg = new Configuration();
cfg.configure();
return cfg.buildSessionFactory();
}catch(Throwable e){
System.out.println("Erro ao criar session factory. \n Erro" + e);
throw new ExceptionInInitializerError();
}
}
public static SessionFactory getSf(){
return sF;
}
public static void closeSession() throws HibernateException {
try {
Session s = (Session) threadSession.get();
threadSession.set(null);
if (s != null && s.isOpen()) {
s.close();
}
} catch (HibernateException ex) {
throw new RuntimeException(ex);
}
}
public static void rollbackTransaction() throws HibernateException {
Transaction tx = (Transaction) threadTransaction.get();
try {
threadTransaction.set(null);
if (tx != null && !tx.wasCommitted() && !tx.wasRolledBack()) {
tx.rollback();
}
} catch (HibernateException ex) {
throw new RuntimeException(ex);
} finally {
closeSession();
}
}
}
e além disso as vezes ele retorna o seguinte erro:
GRAVE: Servlet.service() for servlet [CadastroUfsServlet] in context with path [/CadastroFiliais] threw exception [Servlet execution threw an exception] with root cause
java.lang.NoClassDefFoundError: Could not initialize class br.com.intranet.util.HibernateUtil
at br.com.intranet.dao.CadastroCidadesDao.(CadastroCidadesDao.java:31)
at br.com.intranet.servlet.CadastroUfsServlet.processRequest(CadastroUfsServlet.java:34)
at br.com.intranet.servlet.CadastroUfsServlet.doGet(CadastroUfsServlet.java:49)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:383)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
alguém pode me dar uma luz?!
ja verifiquei os jars e acredito que não está faltando nada, e se eu fizer a mesma consulta em outra classe que não o servlet, eu recebo o resultado esperado.