Bonjour,
J'ai un projet qui consite à la gestion d'une base de donnée Oracle via un interface web. J'utilise le serveur d'application Jboss et je me connecte à la base de donnée via une DataSource.
Voici mon code de connexion :
Fichier InitDB (Servlet de connexion)
Fichier OracleConnexion
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public void init(ServletConfig config) throws ServletException { super.init(config); try{ Connection dbc = OracleConnexion.getConnection(); System.out.println("dbc = "+dbc); if(dbc==null) { System.out.println("connexion impossible"); } else { AdministratorDB.setConnection(dbc); //connection to the table Administrator System.out.println("connexion réussi"); } } catch(Exception e){ System.out.println("erreur lors du chargement de InitDB "+e); } }D'après la console, je me connecte tres bien à la DB vu qu'elle m'affiche ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 public class OracleConnexion { protected static String username; protected static String password; protected static DataSource ds; protected static ArrayList<Connection> poolConnect = new ArrayList<Connection>(); static { username = ApplicationProperties.getDatasourceUserId(); password = ApplicationProperties.getDatasourcePassword(); ds = getDataSource(); } public static DataSource getDataSource() { try{ InitialContext context = new InitialContext(); ds = (DataSource)context.lookup(ApplicationProperties.getDatasourceJndiName()); //recherche de lobjet DataSource dans lannuaire JNDI } catch (javax.naming.NamingException ne) { System.out.println("erreur de nom : "+ ne); ne.printStackTrace(); } return ds; } public static Connection getConnection() { try { System.out.println("debut connexion"); Connection dbc = ds.getConnection(username,password); System.out.println("connexion = "+dbc); poolConnect.add(dbc); return dbc; } catch(Exception e) { System.out.println("erreur de connexion "+e); e.printStackTrace(); return null ; } }
Le problème survient lorsque j'appelle la methode logAdmin qui va executer une bête requête
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 16:33:32,959 INFO [STDOUT] debut connexion 16:33:33,361 INFO [STDOUT] connexion = org.jboss.resource.adapter.jdbc.WrappedConnection@c6a26b 16:33:33,362 INFO [STDOUT] dbc = org.jboss.resource.adapter.jdbc.WrappedConnection@c6a26b 16:33:33,380 INFO [STDOUT] connexion réussi
code de la méthode logAdmin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 try{ HttpSession session = request.getSession(); String nickname = beanAdministratorForm.getNickname(); String password = beanAdministratorForm.getPassword(); int idAdmin = AdministratorDB.logAdmin(nickname, password); if( idAdmin != 0){ session.setAttribute("id",""+idAdmin); forward = mapping.findForward("connectionsuccess"); } else{ System.out.println("erreur log, retour case départ !"); errors.add("badlog", new ActionMessage("loging.badusernameandpassword")); forward = mapping.findForward("connectionfailed"); } } catch (Exception e){ e.printStackTrace(); System.out.println("erreur de log : "+e); }
La console ne me sort aucune exception, juste les println que je reçois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 public static int logAdmin (String nickname, String password){ erreur = null; int idAdmin = 0; try{ String req = "select id_administrator from administrator where nickname = ? and password = ?"; PreparedStatement pstm = dbConnect.prepareStatement(req); System.out.println("requete = "+req); pstm.setString(1,nickname); pstm.setString(2,password); ResultSet rs = pstm.executeQuery(); if(rs.next()){ idAdmin = rs.getInt(1); } else { idAdmin = 0; } pstm.close(); } catch (Exception e){ erreur = e; System.out.println("erreur de login : "+erreur); } return idAdmin; }
Je rentre pourtant dans mes champs de ma jsp des données correctes qui se trouvent dans ma DBn donc je ne sais pas d'où pourrait venir le problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 16:38:03,207 INFO [STDOUT] erreur log, retour case départ !
Merci d'avance pour ceux qui répondront.
Dasson
P.S. : Je ne sais pas si je devais mettre ce post dans le JDBC ou autre part (JBOSS ou Oracle ou Struts) donc désolé si je me suis trompé.
Partager