Erreur null dans un code java

Résolu/Fermé
futur ingenieure Messages postés 133 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 2 juin 2012 - 20 mai 2011 à 22:45
futur ingenieure Messages postés 133 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 2 juin 2012 - 21 mai 2011 à 12:55
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);
}
}





A voir également:

13 réponses

arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
Modifié par arth le 20/05/2011 à 23:59
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
futur ingenieure Messages postés 133 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 2 juin 2012 1
20 mai 2011 à 23:58
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
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
Modifié par arth le 21/05/2011 à 00:01
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
futur ingenieure Messages postés 133 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 2 juin 2012 1
21 mai 2011 à 00:04
merci bien

j l'ai ajouté mais même erreur nnoomm=null
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
21 mai 2011 à 00:07
C'est possible d'avoir l'erreur en entier, et les autres choses demandées ?
0
futur ingenieure Messages postés 133 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 2 juin 2012 1
21 mai 2011 à 00:11
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
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
21 mai 2011 à 00:12
Tu es sûr qu'il y a des choses dans la BDD?
0
futur ingenieure Messages postés 133 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 2 juin 2012 1
21 mai 2011 à 00:14
oui , :)
c'est bizarre non?
0
futur ingenieure Messages postés 133 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 2 juin 2012 1
21 mai 2011 à 00:17
autre idée SVP?
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
21 mai 2011 à 00:29
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
futur ingenieure Messages postés 133 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 2 juin 2012 1
Modifié par futur ingenieure le 21/05/2011 à 00:48
vraiment vous avez tous fait
merci pour votre effort
la même erreur persiste
:'(
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
21 mai 2011 à 09:36
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
futur ingenieure Messages postés 133 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 2 juin 2012 1
21 mai 2011 à 12:55
enfin , résolu!
j'ai changé le type de projet de EJB en Web

ça marche bien ;)

merci
0