Erro 500 no apache tomcat

9 respostas
M

Oi.Estou com um problema na conversao de String para double depois de feita a requisicao com o request.getParameter.Ja fiz todas as tentativas…Alguma ajuda???Segue o codigo :

<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>

Calculadora
<% 
  double num1 = Double.parseDouble((String)request.getParameter("znum1"));  
 //String num1 = request.getParameter("znum1");  
 double num2 = Double.parseDouble((String)request.getParameter("znum2"));  
 //String num2 = request.getParameter("znum2"); 
 String op = request.getParameter("zop");
 out.println(op);
 out.println(num1);
 out.println(num2);
 if(op == "+")
 {
	 
	 double result = num1+  num2;
	 out.println("<h2> O resultado eh" + result +" <h2><br>"); 
	 
	 
 }
 if(op == "-")
 {	 
	 double result = num1 - num2;
	 out.println("<h2> O resultado eh" + result +" <h2><br>");
 }
 if(op == "*")
 {
	 double result =num1 *num2;
	 out.println("<h2> O resultado eh" + result +" <h2><br>");
 }
 if(op == "/")
 {
	 double result = num1 / num2; 
	 out.println("<h2> O resultado eh" + result +" <h2><br>");
 }

%>

Numero 1

Operador

Numero 2



O erro que da :
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 /calc.jsp at line 12

9: 

10:

11:     <%

12:       double num1 = Double.parseDouble((String)request.getParameter(znum1));

13:      //String num1 = request.getParameter(“znum1”);

14:      double num2 = Double.parseDouble((String)request.getParameter(znum2));

15:      //String num2 = request.getParameter(“znum2”);
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:337)

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

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

root cause

java.lang.NullPointerException

sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)

java.lang.Double.parseDouble(Unknown Source)

org.apache.jsp.calc_jsp._jspService(calc_jsp.java:64)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

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

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

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

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

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.16 logs.


Apache Tomcat/6.0.16

OBRIGADO!!!

9 Respostas

W

java.lang.NullPointerException

Isto quer dizer que vc está passando algum valor null para o método parseDouble! Revise suas variáveis e veja o que está null, NullPointerException é sempre erro do programador!
A propósito, sempre que for comparar Strings, use o método ‘equals’!

[]'s

M

como estou passando um valor null no meu parseDouble se a variavel criada esta sendo lida atraves do request.getParameter???como corrigir esse erro entao???

W

Como você está executando o seu servlet? (O endereço que você está colocando no browser)

M

estou usando o tomcat e o eclipse.Quando eu executo o programa o propio tomcat exibe via browser a pagina de erro(nese caso)…sendo que um programa simples de conversao de temperatura funciona(segue o codigo) :

<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>

Conversao de Celsius para Fareihnt <% String valor = request.getParameter("celsius"); if(valor != null) { double f = Double.parseDouble(valor)*9/5 + 32; out.println("

Valor em Fareihnt " +f+"


"); } %>


Celsius

W

if(valor != null)

Aí está a diferença…se vc acessa o servlet e não passa nenhum parametro pra ele, é claro que vai null…

A diferença de um pra outro é que vc verifica se é null, e só faz sua lógica se não for… Inclusive tem um form no final para fazer uma nova requisição (desta vez com os dados)

M

vlw agora ta compilando…so uma coisa:toda vez quando eu quero fazer eh uma conversao desse tipo,eu tenho que verificar se ela eh diferente de null???por que???

W

Não tem nada a ver com a conversão.

Quando houver a possibilidade de que um objeto seja null e você precise executar um método dele, sempre verifique se ele é null, um simples objeto.equals(objeto2) pode ocasionar uma NullPointerException

[]'s

M

entendi…vlw…porra tinha dias que eu pesquisava e nao conseguia descobrir o por que do erro.Vc tem alguma dica para quem ta querendo fazer uma certificacao SCJP???obrigado meu velho!!!

W

cara nem tirei certificação, nem pesquisei saber como é… =p

Criado 14 de setembro de 2008
Ultima resposta 14 de set. de 2008
Respostas 9
Participantes 2