Erreur null dans un code java

Résolu
futur ingenieure Messages postés 185 Statut Membre -  
futur ingenieure Messages postés 185 Statut Membre -
salut ,

SVP j'ai réaliser le code suivant d'un web service d'identification
je ne sais pas pourquoi la variable nnoomm est toujours null

aidez moi svp c'est urgent

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.ejb.Stateless;

@WebService()
@Stateless()
public class IdentificationWebService {

/**
* Web service operation
*/
@WebMethod(operationName = "IdentificationOp")
public String IdentificationOp(@WebParam(name = "login")
String login, @WebParam(name = "pass")
String pass) {
//TODO write your implementation code here:
String nnoomm = null;
try {
String username = "root";
String password = "0000";
Statement stmt;
ResultSet rs;

Class.forName("com.mysql.jdbc.Driver").newInstance();

String url = new String("jdbc:mysql://localhost:3306/iptv");
Connection conn = DriverManager.getConnection(url, username, password);
System.out.println("OK connexion réussie...");

stmt = conn.createStatement();
rs = stmt.executeQuery("select * from clients");

while (rs.next())
{
String l1 = rs.getString("login");
String m1 = rs.getString("password");
if ((l1.equals(login))&& (m1.equals(pass)))
{ String nom = rs.getString("nom");
System.out.println(nom + "\n");
nnoomm=nom;

}
/*else { JOptionPane.showMessageDialog(null, "Valeur incorrecte de nom d'utilisateur ou/et de mot de passe. " , "Erreur",
JOptionPane.ERROR_MESSAGE);
}*/

}
nnoomm=rs.getString("nom");

// rs.close();
// stmt.close();
// conn.close();
// System.out.println("Déconnexion réussie...");

} catch (SQLException ex) {

} catch (InstantiationException ex) {

} catch (IllegalAccessException ex) {

} catch (ClassNotFoundException ex) {

}
return (nnoomm);
}
}

13 réponses

  1. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    while (rs.next())
    {
    String l1 = rs.getString("login");
    String m1 = rs.getString("password");
    if ((l1.equals(login))&& (m1.equals(pass)))
    { String nom = rs.getString("nom");
    System.out.println(nom + "\n");
    nnoomm=nom;

    }
    /*else { JOptionPane.showMessageDialog(null, "Valeur incorrecte de nom d'utilisateur ou/et de mot de passe. " , "Erreur",
    JOptionPane.ERROR_MESSAGE);
    }*/

    }
    nnoomm=rs.getString("nom");

    Regarde bien ce qui est souligné : Juste avant, tu parcours les données, et si login ok, alors nnoomm = nom;

    Sauf que ce que j'ai souligné, c'est ce qui vient après le While, sauf que rs.next() est déjà passé juste avant dans le while, donc tu es hors zone de données, donc lorsque tu fais nnoomm = rs.getString();, comme le rs est déjà hors champ, il est donc null, donc impossible de faire null.getString(); Ou alors rs.getSTring() retourne NULL.

    Enlève cette ligne, et ça devrait être bon.


    Le loup, solitaire et mystérieux.
    0
  2. futur ingenieure Messages postés 185 Statut Membre 1
     
    Merci bien de m'avoir répondre

    j'ai enlevé cette ligne vous avez raison

    mais la valeur de nnoomm reste encore null dans le soap response

    d'aute idée?
    0
  3. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    Sans avoir tous les éléments, pas possible.

    Que donne comme résultat la reuqête select * from clients?

    Juste après le While, rajouter la ligne : System.out.println("Valeur de nnoomm : "+nnoomm);


    Le loup, solitaire et mystérieux.
    0
  4. futur ingenieure Messages postés 185 Statut Membre 1
     
    merci bien

    j l'ai ajouté mais même erreur nnoomm=null
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    C'est possible d'avoir l'erreur en entier, et les autres choses demandées ?
    0
  7. futur ingenieure Messages postés 185 Statut Membre 1
     
    il s'agit d'un web service
    il m'affiche dans le navigateur , Method returned
    java.lang.String : "null"
    et bien évidament dans la zone body de soap response rien
    0
  8. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    Tu es sûr qu'il y a des choses dans la BDD?
    0
  9. futur ingenieure Messages postés 185 Statut Membre 1
     
    oui , :)
    c'est bizarre non?
    0
  10. futur ingenieure Messages postés 185 Statut Membre 1
     
    autre idée SVP?
    0
  11. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    Remplace le bout de code correpondant par le code suivant :

    String l1 = rs.getString("login");
    System.out.println("Login récupéré : "+l1);
    String m1 = rs.getString("password");
    System.out.println("Password récupéré : "+m1);

    if ((l1.equals(login))&& (m1.equals(pass)))
    {
    String nom = rs.getString("nom");
    System.out.println("Correspondance trouvée.");
    nnoomm=nom;
    }

    Ca te permettra de vérifier quelles données sont extraites et vérifier par rapport au login si tu retouves les même choses.

    Et rajoutes aussi des Print en début de constructeur pour vérifier que les paramètres passés ne sont pas vides.
    0
  12. futur ingenieure Messages postés 185 Statut Membre 1
     
    vraiment vous avez tous fait
    merci pour votre effort
    la même erreur persiste
    :'(
    0
  13. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    Ceci dit, tu ne donne pas ni l'erreur réelle, ni le résultat de l'output, rien.

    C'est possible d'avoir les logs des System.out.println? ainsi que la valeur des paramètres en entrée de la fonction?

    Les lignes que j'ai rajouté ne serve pas à enlever l'erreur, c'est juste pour comprendre où ça merde pour l'instant.
    0
  14. futur ingenieure Messages postés 185 Statut Membre 1
     
    enfin , résolu!
    j'ai changé le type de projet de EJB en Web

    ça marche bien ;)

    merci
    0