Motorola V635 problemas com null

0 respostas
C

Pessoal boa noite a todos
estou utilizando o meu celular pra testar minha aplicação de TCC (Monografia)
o problema é o seguinte:

no simulador, td acontece bonitinho, mas no celular....
tipo, vou fazer o login, se o login existe no banco de dados, beleza
mas se o login não existe no banco de dados, o meu celular encerra a aplicação, pq da um Uncaught exception java/lang/NullPointerException MAS o engraçado é q eu to tratando disso ai no servlet e no midlet e ñ adianta

estou postando o código pra qm puder m ajudar
valeu
[color="darkred"]
CÓDIGO DO SERVLET[/color]

else if ( ( "fazerlogin" ).equals( command ) ) {
            // try principal
            try {
                // obtém informações da sessão
                HttpSession session = request.getSession( true );
                System.out.println( "\n Session... " + session );
                // se for uma sessão nova, reescreva o URL do cliente
                if ( session.isNew() ) {
                    // obtém o URL
                    String incomingURL = request.getRequestURL().toString();
                    System.out.println( "\n incomingURL... " + incomingURL );
                    // codifica e adiciona o ID de sessão no URL
                    String URLwithID = response.encodeURL(incomingURL);
                    System.out.println( "\n URLwithID... " + URLwithID );
                    // devolve um cabeçalho para o cliente, com o novo URL
                    response.setHeader( "Custom-newURL", URLwithID );
                    System.out.println( "\n URLwithID... " + URLwithID );
                }// fecha o if
                // lê a string login que vem do cliente
                String login = dis.readUTF();
                // escreve no console a string login que veio do cliente
                System.out.println( "\n String login recebida... " + login );
                ps = this.con.prepareStatement(sqla);
                System.out.println( "\n prepare statement... " + sqla );
                ps.setString( 1, login );
                System.out.println( "\n String login para consulta... " + login );
                rs = ps.executeQuery();
                System.out.println( "\n ps... " + ps );
                if ( login != null) {
                    System.out.println( "\n if login < > null --> String login tem o valor... " + login );
                    while ( rs.next() ) {
                        System.out.println( "\n Entrei no while" );
                        // imprime no console o resultado da busca
                        System.out.println("| Login: " + rs.getString("login") + " | Senha: " + rs.getString("senha"));
                        // salva nas variáveis o resultado da pesquisa
                        loginResult = rs.getString("login");
                        senhaResult = "" + rs.getString("senha");
                    }// fecha o while
                    if ( ( loginResult ).equals( login ) ) {
                        System.out.println( "\n if loginResult < > null --> String loginResult tem o valor... " + loginResult );
                        // retorna para o cliente o resultado da busca
                        response.setContentType("text/plain");
                        dos.writeUTF(loginResult);
                        dos.writeUTF(senhaResult);
                        System.out.println( "| Enviando loginResult: "  + loginResult + " | Enviando senhaResult: "  + senhaResult  );
                        dos.flush(); // força o envio para o cliente
                        dis.close(); // fecha a entrada de dados
                        dos.close(); // fecha a saída de dados
                    } else if ( loginResult != login ) {     
                        System.out.println( "\n if loginResult == null --> String loginResult tem o valor... " + loginResult );
                        // retorna para o cliente o resultado da busca
                        response.setContentType("text/plain");
                        loginResult = "vazio";
                        senhaResult = "vazio";
                        dos.writeUTF(loginResult);
                        dos.writeUTF(senhaResult);
                        System.out.println( "| Enviando loginResult: "  + loginResult + " | Enviando senhaResult: "  + senhaResult  );
                        dos.flush(); // força o envio para o cliente
                        dis.close(); // fecha a entrada de dados
                        dos.close(); // fecha a saída de dados
                    }
                }
            }
            //abre o catch principal
            catch (Exception ex) {
                // imprime no console
                System.out.println( "\n Passei no catch principal" );
                System.out.println( "\n Foi encontrado o seguinte erro... " + ex.getMessage());
                //ex.printStackTrace();
            }// fecha o catch principal
            loginResult = null;
            senhaResult = null;
            
        }// fecha o if principal
CÓDIGO DA MIDLET
private class ThreadHttpConnection extends Thread{
        public String url = "http://localhost:8084/Servidor/ServletSAP?command=fazerlogin";
        public void run() {
            HttpConnection http = null;
            try {
                http = (HttpConnection)Connector.open(url, Connector.READ_WRITE);
                http.setRequestProperty("User-Agent", "Profile/MIDP-2.0 , Configuration/CLDC-1.0");
                http.setRequestProperty("Content-Language", "en-US");
                http.setRequestMethod(HttpConnection.POST);
                dos = http.openDataOutputStream();
                dos.writeUTF(login.trim());
                dos.flush();
                System.out.println( "\n Enviando String url: " + url );
                System.out.println( "\n Enviando a String login ( " + login + " ) Conectando com o servidor para buscar login " );
            } catch (IOException ex) {
                System.out.println( "\n Passei no catch Envia ao Servidor..." + ex.toString() + " \n " );
                showAlert( " \n Foi encontrado o seguinte erro...\n" + ex.getMessage() + " \n " );
                getDisplay().setCurrent(get_alert1(), get_formPrincipal());
                //ex.printStackTrace();
            }
            try {
                dis = http.openDataInputStream();
                System.out.println( "\n Passei no try open data input stream..." );
            } catch (IOException ex) {
                System.out.println( "\n Passei no catch open data input stream..." + ex.toString() + " \n " );
                //ex.printStackTrace();
            }
            try {
                String URLwithID = http.getHeaderField("Custom-newURL");
                System.out.println( "\n URLwithID: "  + URLwithID );
                //se o cabeçalho possui um URL reescrito, então:
                if(URLwithID != null) {
                    url = URLwithID; //atualiza o URL para todos os pedidos futuros da servlet
                    System.out.println( "\n Url: "  + url );
                }
            } catch (IOException ex) {
                System.out.println( "\n Passei no catch Reescrita de URL..." + ex.toString() + " \n " );
                showAlert( " \n Foi encontrado o seguinte erro...\n" + ex.getMessage() + " \n " );
                getDisplay().setCurrent(get_alert1(), get_formPrincipal());
                //ex.printStackTrace();
            }
            try {
                loginResult = dis.readUTF();
                System.out.println( "\n String loginResult tem o valor ..." + loginResult );
                if ( ( "vazio" ).equals( loginResult )){
                    System.out.println( "\n if loginResult == vazio --> String loginResult tem o valor... " + loginResult );
                    showAlert( "\n  \n");
                    getDisplay().setCurrent(get_alert1(), get_formPrincipal());
                } else if ( loginResult != "vazio") {
                    try {
                        System.out.println( "\n if loginResult != vazio --> String loginResult tem o valor... " + loginResult );
                        //loginResult = dis.readUTF();
                        senhaResult = dis.readUTF();
                        System.out.println( "\n senhaResult recebido : "  + senhaResult + " | loginResult recebido: " + loginResult + "\n");
                        alertResult = new Alert( "\n Seja Bem Vindo(a):\n ","\n Bem Vindo(a): \n " + loginResult, null, AlertType.CONFIRMATION) ;
                        alertResult.setTimeout(Alert.FOREVER);
                        getDisplay().setCurrent(alertResult, get_formEscolha());
                        getDisplay().vibrate(1000);
                        dos.close();
                        dis.close();
                        http.close();
                    } catch (IOException ex) {
                        System.out.println( "\n Passei no catch recebe do servidor..." + ex.toString() );
                    }
                }
            } catch (IOException ex) {
                System.out.println( "\n Passei no catch login result..." + ex.toString() );
                //ex.printStackTrace();
            }
            
        }
    }

Para Facilitar, estou pondo a saída do midlet

SAÍDA DO MIDELT NO MIDWAY

Enviando String url: http://localhost:8084/Servidor/ServletSAP?command=fazerlogin

 Enviando a String login ( a ) Conectando com o servidor para buscar login

 Passei no try open data input stream...

 URLwithID: http://localhost:8084/Servidor/ServletSAP;jsessionid=18E980C4D26AE01E71754FE61478132F

 Url: http://localhost:8084/Servidor/ServletSAP;jsessionid=18E980C4D26AE01E71754FE61478132F

 String loginResult tem o valor ...vazio

 if loginResult == vazio --> String loginResult tem o valor... vazio

VB: inside JkDeviceStartVibration()

AMS: AMS_MSG_MESSAGE_SENT, 533903, 302062940

Uncaught exception java/lang/NullPointerException

ALERT: uncaught Exception found
Criado 9 de novembro de 2007
Respostas 0
Participantes 1