[RESOLVIDO] deploy tomcat + hibernate - java.lang.NullPointerException

5 respostas
foguinho.peruca

Olá!

Estou desenvolvendo a minha aplicação no netbeans (6.7.1) com tomcat + hibernate e mysql. Na minha máquina de desenvolvimento (Debian Lenny), ele roda perfeitamente, através do netbeans. Porém, no server (Debian Lenny) eu faço o deploy e ele roda bem, até acessar algumas páginas (jsp) que contém código java de acesso ao hibernate. Simplesmente dá o erro: java.lang.NullPointerException. Testei o mysql do server e consigo acessar ele numa boa, da minha máquina de desenvolvimento (ou seja: não é o acesso em si ao banco de dados). O que poderia ser?

5 Respostas

B

Problema na lógica, só vendo o código pra saber.

foguinho.peruca

http://kenai.com/projects/tsunade/ --> repositorio do projeto
https://kenai.com/svn/tsunade~subversion --> para usar o subversion para obter o código

de antemão, segue a minha página (os servlets com hibernate também não funcionam):

<%–
/* Author: Jefferson Luiz Oliveira de Campos

  • e-mail: [email removido]
  • Created on: 29/06/2008
  • Last Modification: 30/07/2009
  • Who’s made the last modification? Jefferson Luiz Oliveira de Campos
  • License: GPLv2 or higher
  • Log:
    */
    –%>
<%<a class="mention" href="/u/page">@page</a> contentType=“text/html pageEncoding=ISO-8859-1%>

<%<a class="mention" href="/u/page">@page</a> import=“util.HibernateUtil” %>

<%<a class="mention" href="/u/page">@page</a> import=“org.hibernate.Session” %>

<%<a class="mention" href="/u/page">@page</a> import=“org.hibernate.SessionFactory” %>

<%<a class="mention" href="/u/page">@page</a> import=“org.hibernate.cfg.Configuration” %>

<%<a class="mention" href="/u/page">@page</a> import=“colaborador.Pessoa” %>

<%<a class="mention" href="/u/page">@page</a> import=“java.text.SimpleDateFormat” %>

<%<a class="mention" href="/u/page">@page</a> import=“java.util.Date” %>

<%<a class="mention" href="/u/page">@page</a> import=“java.util.List” %>

<%<a class="mention" href="/u/page">@page</a> import=“java.util.Iterator” %>
ID:
Registros Cadastrados <% Session sessao = null; try { SimpleDateFormat dataBr = new SimpleDateFormat("dd/MM/yyyy"); sessao = HibernateUtil.getSessionFactory().getCurrentSession(); sessao.beginTransaction(); List result = sessao.createCriteria(Pessoa.class).list();
if (result.size() > 0) {
    Iterator it = result.iterator();
    while (it.hasNext()) {
        Pessoa p = (Pessoa) it.next();
        out.println("<tr>");
        out.println("<td>" + p.getIdPessoa() + "</td>");
        out.println("<td>" + p.getNome() + "</td>");
        out.println("<td>" + dataBr.format(p.getDataNascimento()) + "</td>");
        out.println("<td>" + "<a href=\"javascript:criaTabs(new Array('colaborador/cadPessoa.jsp?acao=manutencao&idPessoa=" + p.getIdPessoa() + "','colaborador/cadEndereco.jsp?idPessoa=" + p.getIdPessoa() + "','colaborador/cadContato.jsp?idPessoa=" + p.getIdPessoa() + "','colaborador/cadDocumentos.jsp?idPessoa=" + p.getIdPessoa() + "','colaborador/cadObservacaoPessoa.jsp?idPessoa=" + p.getIdPessoa() + "'),new Array('Pessoa','Endere&ccedil;o','Contatos','Documentos','Observa&ccedil;&atilde;o'))\">Pessoa</a>" + "</td>");
        out.println("<td>" + "<a href=\"javascript:criaTabs(new Array('colaborador/cadDependente.jsp?idPessoa=" + p.getIdPessoa() + "'),new Array('Dependente'))\">Depentente</a>" + "</td>");
        out.println("<td>" + "<a href=\"javascript:criaTabs(new Array('colaborador/cadEducacao.jsp?idPessoa=" + p.getIdPessoa() + "'),new Array('Educa&ccedil;&atilde;o'))\">Educa&ccedil;&atilde;o</a>" + "</td>");
        out.println("<td>" + "<a href=\"javascript:criaTabs(new Array('colaborador/cadVinculo.jsp?idPessoa=" + p.getIdPessoa() + ",cadObservacaoVinculo.jsp?idPessoa=" + p.getIdPessoa() + "'),new Array('Vinculo,Observa&ccedil;&atilde;o'))\">Vinculo</a>" + "</td>");
        out.println("<td>" + "<a href=\"javascript:criaTabs(new Array('colaborador/desligamento.jsp?idPessoa=" + p.getIdPessoa() + "'),new Array('Desligamento'))\">Desligar</a>" + "</td>");
        out.println("<td>" + "<a href='javascript:alert(" + p.getIdPessoa() + ")'>Excluir</a>" + "</td>");
        out.println("<td>" + "<a href=\"javascript:criaTabs(new Array('colaborador/cadPessoa.jsp?acao=manutencao&idPessoa=" + p.getIdPessoa() + "','colaborador/cadEndereco.jsp?idPessoa=" + p.getIdPessoa() + "','colaborador/cadContato.jsp?idPessoa=" + p.getIdPessoa() + "','colaborador/cadDocumentos.jsp?idPessoa=" + p.getIdPessoa() + "','colaborador/cadObservacaoPessoa.jsp?idPessoa=" + p.getIdPessoa() + "','colaborador/cadDependente.jsp?idPessoa=" + p.getIdPessoa() + "','colaborador/cadEducacao.jsp?idPessoa=" + p.getIdPessoa() + "','colaborador/cadVinculo.jsp?idPessoa=" + p.getIdPessoa() + "','colaborador/cadObservacaoVinculo.jsp?idPessoa=" + p.getIdPessoa() + "'),new Array('Pessoa','Endere&ccedil;o','Contatos','Documentos','Observa&ccedil;&atilde;o','Dependente','Educa&ccedil;&atilde;o','Vinculo','Observa&ccedil;&atilde;o-Vinculo'))\">EDITAR</a>" + "</td>");
        out.println("</tr>");
    }
}
} catch(Exception e) {

System.out.println(e.getMessage() + " - Error!!!");

out.println(e.getMessage() + " - <b>Erro ao carregar Pessoa!!! Contate o administrador do sistema!!!</b>");

} finally {

// Actual contact insertion will happen at this step

<a href="//sessao.flush">//sessao.flush</a>();

sessao.close();

<a href="//HibernateUtil.getSessionFactory">//HibernateUtil.getSessionFactory</a>().close();

}

%>
ID Nome Nascimento Ações

<%--'),new Array('Educação'))" /> ','colaborador/cadBeneficios.jsp','colaborador/cadObservacao.jsp'),new Array('Vínculo','Benefícios','Observação'))" />--%>

O erro completo:[u]

Apache Tomcat/6.0.18 - Error report

HTTP Status 500 -


type Exception report

message

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

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /colaborador/manutencao.jsp at line 75
72: } finally {

73:   // Actual contact insertion will happen at this step

74:     <a href="//sessao.flush">//sessao.flush</a>();

75:     sessao.close();

76:     <a href="//HibernateUtil.getSessionFactory">//HibernateUtil.getSessionFactory</a>().close();

77: }

78: %>
Stacktrace:

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

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

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

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

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

root cause

java.lang.NullPointerException
org.apache.jsp.colaborador.manutencao_jsp._jspService(manutencao_jsp.java:127)
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:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
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.18 logs.


Apache Tomcat/6.0.18

A

Jefferson ele não estaria acessando uma variável que está nula ?

foguinho.peruca

eu comentei a linha:

} finally {

  // Actual contact insertion will happen at this step

    //sessao.flush();

    //sessao.close();
    //HibernateUtil.getSessionFactory().close();

}

E deu a seguinte mensagem de erro:

Apache Tomcat/6.0.18 - Error report

HTTP Status 500 -


type Exception report

message

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

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /colaborador/manutencao.jsp at line 46
43: Session sessao = null;

44: try {

45:     SimpleDateFormat dataBr = new SimpleDateFormat("dd/MM/yyyy");

46:     sessao = HibernateUtil.getSessionFactory().getCurrentSession();

47:     sessao.beginTransaction();

48:     List result = sessao.createCriteria(Pessoa.class).list();

49:
Stacktrace:

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

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

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

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

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

root cause

javax.servlet.ServletException: java.lang.NoClassDefFoundError: util.HibernateUtil
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.colaborador.manutencao_jsp._jspService(manutencao_jsp.java:145)
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:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.lang.NoClassDefFoundError: util.HibernateUtil
java.lang.Class.initializeClass(libgcj.so.90)
org.apache.jsp.colaborador.manutencao_jsp._jspService(manutencao_jsp.java:98)
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:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
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.18 logs.


Apache Tomcat/6.0.18

Vou tentar adicionar no classpath o hibernate… alguma outra solução? O.o

foguinho.peruca

Resolvido!

Eu comentei o finally e começou a dar o erro indicando que não era possível acessar as minhas classes. Consertei o classpath e a minha aplicação funcionou perfeitamente.

Jeff

Criado 31 de julho de 2009
Ultima resposta 2 de ago. de 2009
Respostas 5
Participantes 3