Java.lang.NullPointerException

2 respostas
J

Olá amigos!
Estamos desenvolvendo uma aplicação para celular e estamos tendo alguns problemas. Temos uma pequena página em wml aonde o usuário realiza seu cadastro. Se o usuário já existir estes campos devem ser preenchidos automaticamente. Vejam um trecho que realiza esta função:

<?xml version=1.0 encoding=ISO-8859-1 ?>

<!DOCTYPE wml PUBLIC -//SmartTrust//DTD WIG-WML 4.0//EN

<a href="http://www.smarttrust.com/DTD/WIG-WML4.0.dtd">http://www.smarttrust.com/DTD/WIG-WML4.0.dtd</a>>

<%@ page language=java import = java.sql.<em>,<a href="http://java.io">java.io</a>.</em>,java.<em>,prolan.prolanDB.</em>,javax.crypto.<em>,java.security.</em>,java.util.<em>,java.lang.</em>,prolan.prolanSecurity.PRUser %>

<%@ page session = true autoFlush=true%>

<%

String strMinId;

String strNickName, strCidade;

int nSex, nAge, nHeigth;
strNickName = “”;

strCidade = “”;

nSex = -1;

nAge = 0;

nHeigth = 0;
HttpSession sessao = request.getSession(true);

strMinId = (String)sessao.getAttribute(minId);

//strMinId = “[telefone removido]”;

out.println("Celular: " + strMinId);
String sql;

sql = Select p.Nickname, p.sex,p.age, p.heigth, c.cityname;

sql =  sql + From profile p, subsProfileCity sc, City c;

sql =  sql + where p.min_id=’” + strMinId + “’”;

sql =  sql + and p.class_id= 1090;

sql =  sql + and p.object_id=sc.subsProfile;

sql =  sql + and sc.city=c.object_id;

sql =  sql + "and sc.priority = 1 ";

out.println("SQL: " + sql);

PRDBConnection rs = new PRDBConnection(sql);

if(rs.resultSet().next()){

strNickName = rs.resultSet().getString(0);

nSex = rs.resultSet().getInt(1);

nAge = rs.resultSet().getInt(2);

nHeigth = rs.resultSet().getInt(3);

strCidade = rs.resultSet().getString(4);

rs.close();

}

%>
<wml>
<card id=“card1”>
<p>
<input title=“Apelido” value=<%=strNickName%> type=“text” name=“Apelido” format="*M" maxlength=“20” iconid=“3” iconusage=“adjacent”/>
</p>
<go href="#card2"/>
</card>

Ao carregar a página o seguinte erro é apresentado:

500 Internal Server Error
/simMeuPerfil.jsp:

java.lang.NullPointerException

at jrun__simMeuPerfil2ejsp11._jspService(jrun__simMeuPerfil2ejsp11.java:73)

at allaire.jrun.jsp.HttpJSPServlet.service(/jsp/HttpJSPServlet.java:39)

at allaire.jrun.jsp.JSPServlet.service(/jsp/JSPServlet.java:228)

at allaire.jrun.jsp.JSPServlet.service(/jsp/JSPServlet.java:196)

at allaire.jrun.servlet.JRunSE.service(/servlet/JRunSE.java:1416)

at allaire.jrun.session.JRunSessionService.service(/session/JRunSessionService.java:1082)

at allaire.jrun.servlet.JRunSE.runServlet(/servlet/JRunSE.java:1270)

at allaire.jrun.servlet.JRunRequestDispatcher.forward(/servlet/JRunRequestDispatcher.java:89)

at allaire.jrun.servlet.JRunSE.service(/servlet/JRunSE.java:1552)

at allaire.jrun.servlet.JRunSE.service(/servlet/JRunSE.java:1542)

at allaire.jrun.servlet.JvmContext.dispatch(/servlet/JvmContext.java:364)

at allaire.jrun.jrpp.ProxyEndpoint.run(/jrpp/ProxyEndpoint.java:388)

at allaire.jrun.ThreadPool.run(/ThreadPool.java:272)

at allaire.jrun.WorkerThread.run(/WorkerThread.java:75)

Se alguém puder me ajudar, eu agradeço.
Obrigado!

2 Respostas

_fs

NullPointerException indica que você está tentando acessar atributos/métodos de um objeto não inicializado.

No seu código vejo dois objetos que podem ser nulos e você não está checando: a session e o resultSet.

T

Essa mensagem já te pode ajudar um pouco:

Isso quer dizer que em algum lugar do seu servidor o JSPC (compilador de JSP) gerou um programa Java com esse nome (jrun__simMeuPerfil2ejsp11.java). Procure esse arquivo e veja a linha 73 (e adjacências…). O JSPC, ou Jasper, não é nenhum bicho de 7 cabeças - na verdade ele é bem “ingênuo” e preguiçoso; se você escreve um código entre <% e %>, ele normalmente só copia (com casca e tudo) o código para o programa Java que ele gerou.

Pode ser até que você consiga encontrar a linha equivalente no seu código-fonte JSP (nem sempre dá, mas pode ser que você tenha sorte.)

Criado 22 de setembro de 2004
Ultima resposta 22 de set. de 2004
Respostas 2
Participantes 3