Bonjour,
Je me heurte à un problème qui se pointe... Plus ou moins lorsqu'il le souhaite !
Enfin pour être franche, ça passe deux fois sur huit, les deux premières fois...
De quoi ? La connexion ( je pense ) à ma base de données.
J'essaie de faire la partie " Log in " du site.
Cependant, alors que je logue mon user :
Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 User user = new User(); user.setIdentifiantUSER(request.getParameter("userName")); user.setPasswordUSER(request.getParameter("password")); user = UserDAO.login(user);
Ce qui va chercher ma fonction login
Code Java : 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 public static User login(User bean) { //preparing some objects for connection Statement stmt = null; String username = bean.getIdentifiantUSER(); String password = bean.getPasswordUSER(); String searchQuery = "" + " SELECT \"User\".iduser, \"User\".identifiantuser, \"User\".passworduser, \"User\".emailuser, \"User\".scoreuser, \"User\".isconnecteduser, \"User\".isadminuser, \"User\".isdeletedaccountuser " + " FROM \"User\"" + " WHERE \"User\".identifiantuser='" + username + "'" + " AND \"User\".passworduser='" + password + "';"; try { //connect to DB currentCon = ConnexionPostgreSQL.getInstance(); stmt = currentCon.createStatement(); rs = stmt.executeQuery(searchQuery); boolean more = rs.next(); // if user does not exist set the isValid variable to false if (!more) { System.out.println("Désolé, vous n'êtes pas un utilisateur enregistré! Veuillez vous enregistrer avant de vous loguer."); bean.setValid(false); } //if user exists set the isValid variable to true else if (more) { String emailUser = rs.getString("emailuser"); int scoreUser = rs.getInt("scoreuser"); System.out.println("Bienvenue " + username); bean.setEmailUSER(emailUser); bean.setScoreUSER(scoreUser); bean.setValid(true); } } catch (Exception ex) { System.out.println("Connexion échouée. Une exception a été levée ! "); ex.printStackTrace(); } //some exception handling finally { if (rs != null) { try { rs.close(); } catch (Exception e) {} rs = null; } if (stmt != null) { try { stmt.close(); } catch (Exception e) {} stmt = null; } if (currentCon != null) { try { currentCon.close(); } catch (Exception e) { } currentCon = null; } } return bean; }
J'ai tout d'abord le droit à un
Donc il est correctement passé dans le elseif, le User est valide.Bienvenue root
Si je relance la fonction ensuite...
Ca fait mal...Connexion échouée. Une exception a été levée !
org.postgresql.util.PSQLException: Une erreur d'entrée/sortie a eu lieu lors d'envoi vers le serveur.
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:283)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:252)
at fr.jabic.dao.concret.UserDAO.login(UserDAO.java:30)
at fr.jabic.LoginServlet.doGet(LoginServlet.java:55)
at fr.jabic.LoginServlet.doPost(LoginServlet.java:80)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: Stream closed
at sun.nio.cs.StreamEncoder.ensureOpen(StreamEncoder.java:26)
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:121)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:212)
at org.postgresql.core.PGStream.flush(PGStream.java:507)
at org.postgresql.core.v3.QueryExecutorImpl.sendSync(QueryExecutorImpl.java:1107)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:256)
... 20 more
Pourtant, ma connexion est fermée lorsque j'ai fini de loguer mon User, et elle est réouverte quand je souhaite le " re loguer "
Une idée concernant l'origine du problème ?
Partager