Erro[NullPoint] no meu Servlet

3 respostas
xwillianss

Olá, eu sou péssimo em inglês e gostaria de saber o porquê da minha servlet está dando esse erro? Estou seguindo o tutorial da Caelum e mesmo assim esta dando erro. Já exclui, e refiz tudo novamente, mas nada de funfar. Tambem gostaria de saber porque os tutoriais da Caelum não revisados antes de disponibiliza-lo na web. Será isso um jogo de Marketing para as pessoas, se matricularem nela? Eu chamo isso de induzir ao erro para depois cobrar para dar solução. Todos os tutoriais da Caelum sempre dão problemas, e não é só eu que diz isso … vários amigos meus inclusive daqui, relatam problemas… um exemplo é o tutorial FJ28 com Hibernate+VRaptor, onde voce tem vários problemas inclusive problemas insolucionáveis. ALguém poderia me indicar um site de apostilas sobre Servlets, Hibernate, JSP enfim toda a especificação J2ee…?
[b]
type Exception report

message

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

exception

java.lang.NullPointerException

br.com.caelum.servlet.AcessaAplicacao.service(AcessaAplicacao.java:22)

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

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.
[/b]

aqui vai meu servlet:

package br.com.caelum.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")
public class AcessaAplicacao extends HttpServlet {
	@Override
	protected void service(HttpServletRequest request,
			HttpServletResponse response)throws ServletException,IOException {
		ServletContext aplicacao = this.getServletContext();
		Date inicializacao = (Date) aplicacao.getAttribute("inicializacao");
		Date agora = new Date();
		
		long diferenca = (agora.getTime() - inicializacao.getTime());
		double minutos = diferenca / (60 * 1000.0);
		
		PrintWriter out = response.getWriter();
		out.println("<html>");
		out.println("Momento inicial: " + inicializacao + "<br/>");
		out.println("Momento atual: " + agora + "<br/>");
		out.println("Minutos: " + minutos + "<br/>");
		out.println("</html>");
	}
}

3 Respostas

khaoz

Apesar de não ter relação nenhuma com a Caelum, pela postura deles aqui no fórum, eu sinceramente não acredito que largariam alguma coisa sem revisão ou teste.
Quanto ao seu problema, ele ocorre na linha 22 mas acredito que tudo comece um pouco acima, mais precisamente linha 19:

Verifica se aquele atributo inicializacao realmente existe, sem contém valor e se é to tipo Date.

E quanto a essa questão:

To gostando do tutorial da sun.

xwillianss

khaoz:
Apesar de não ter relação nenhuma com a Caelum, pela postura deles aqui no fórum, eu sinceramente não acredito que largariam alguma coisa sem revisão ou teste.
Quanto ao seu problema, ele ocorre na linha 22 mas acredito que tudo comece um pouco acima, mais precisamente linha 19:

Verifica se aquele atributo inicializacao realmente existe, sem contém valor e se é to tipo Date.

E quanto a essa questão:

To gostando do tutorial da sun.

inicializacao ta vindo daqui:

package br.com.caelum.servlet;

import java.util.Date;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class ControleDeAplicacao implements ServletContextListener {

	@Override
	public void contextDestroyed(ServletContextEvent event) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void contextInitialized(ServletContextEvent event) {
		Date inicializacao = new Date();
		ServletContext context = event.getServletContext();
		context.setAttribute("inicializacao", inicializacao);
	}
	
}
fabim

Antes de acusar alguem (como vc infelizmente fez) ainda mais uma instituicao que colaborou tanto para o crescimento Java no Brasil como a citada, verifique se nao pode ser algo que vc mesmo esqueceu.

Vc declarou seu listener no web.xml?

<listener>
    <listener-class>br.com.caelum.servlet.ControleDeAplicacao<listener-class>
</listener>
Criado 5 de outubro de 2008
Ultima resposta 6 de out. de 2008
Respostas 3
Participantes 3