Null pointer fazendo leituras de arquivos RESOLVIDO

11 respostas
F

Boa tarde pessoal.

Estou fazendo a leitura de um arquivo para fazer uma busca nele.
a busca e feita corretamente e o resultado e obtido corretamente, porem depois que já me foi dado todo o resultado eu vejo no console
do servidor e existe um nullpointer exception.
lembrando que o codigo funciona normalmente o unico problema e que no final da este null pointer.

segue o codigo

try {  
        		    int i = 0;  
        		    String path = config.getServletContext().getRealPath("/");
        		    String pagina = path+"/pt-br/buscas/empresa.txt";
        		    BufferedReader in = new BufferedReader(new FileReader(pagina)); 
        		    while ((linha = in.readLine().toLowerCase()) != null) {  
        		        i++;  
        		        if (linha.lastIndexOf(pal) >= 0) {
        		            encontrado = true;
        		        }
        		    }  
        		} catch (Exception e) {  
        			System.out.println(e);
        		}

11 Respostas

Rodrigo_Sasaki

poste a stackTrace do erro.

você tentou fechar o Reader pra ver se resolve?

F
java.lang.NullPointerException
	at org.apache.jsp.pt_002dbr.buscar_jsp._jspService(buscar_jsp.java:169)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Rodrigo_Sasaki
F

fechei… nao deu certo=(

nel

De qualquer forma tu precisa adicionar um bloco finally para executar os devidos “close”.
Poste o seu JSP, isso tem cheiro de erro lá.

Rodrigo_Sasaki

farelogost:
java.lang.NullPointerException
at org.apache.jsp.pt_002dbr.buscar_jsp._jspService(buscar_jsp.java:169)

Poste o método completo que estiver na linha 169, e indique qual é a linha 169 por favor.

Uma NullPointerException geralmente não é muito difícil de identificar. Quer dizer que alguma variável que você está usando está nula. Exemplo:String str = null; System.out.println(str.length());Como str é nulo, não tem como invocar o objeto da classe String

A

O erro está na linha 6.
Quando o in.readLine() não tiver mais dados para ler ele retornará NULL. E com isso ocorre um NPE ao tentar utilizar .toLowerCase().
Você valida se é !=null somente depois. Teria que fazer o toLowerCase() depois da validação de != null, dentro do WHILE.

F

bom estranho…o codigo em jsp é apenas este

<%

        		String linha="";

    			boolean encontrado = false;
    			
        		String pal = (String)request.getParameter("busca");
        	if(pal == null){
        			System.out.println("vazio");
        	}
        	else{
        		try {  
        		    int i = 0;  
        		    String path = config.getServletContext().getRealPath("/");
        		    String pagina = path+"/pt-br/buscas/empresa.txt";
        		    BufferedReader in = new BufferedReader(new FileReader(pagina)); 
        		    while ((linha = in.readLine().toLowerCase()) != null) {  
        		        i++;  
        		        if (linha.lastIndexOf(pal) >= 0) {
        		            encontrado = true;
        		        }
        		    }  
        		} catch (Exception e) {  
        			System.out.println(e);
        		}
                      }
Rodrigo_Sasaki

Eu acho que o alvarojunior matou a charada hein, cara. Leu o post dele?

F

alvarojunior
deu certo mesmo… que vacilo meu eheh vlw

F

obrigado galera pela ajuda

Criado 18 de junho de 2012
Ultima resposta 18 de jun. de 2012
Respostas 11
Participantes 4