[JSP] Problem connexion à Mysql

Problem connexion à Mysql [JSP] - SQL/NoSQL - Programmation

Marsh Posté le 23-02-2005 à 03:17:36    

Salut à tous,  
 
J'ai passé beaucoups de temps à essayer de trouver la solution pour mon problème mais voila, j'suis encore bloqué. J'utilise donc jsp pour me connecter à ma base Mysql avec le pilote odbc. Je travail sous linux(debian) et j'ai donc tester la connexion à odbc avec isql qui marche sans aucun problème.
Cependant, quand je teste avec tomcat, j'arrive pas à me connecter et j'obtient cette erreur:
type Exception report
 
message
 
description The server encountered an internal error () that prevented it from fulfilling this request.
 
exception
 
org.apache.jasper.JasperException
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 
root cause
 
java.lang.NullPointerException
 org.apache.jsp.test_jsp._jspService(test_jsp.java:109)
 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.

 
 
Je reprend ici la portion du code pour me connecter à mysql:

Code :
  1. <%@ page import="java.util.*, java.io.*, java.sql.*" %>
  2. <!-- Initialisation de la connection a la basse de donnée Mysql -->
  3. <%!
  4. private final String user="sa";
  5. private final String mdp = "sa";
  6. private final String piloteODBC = "pilote-odbc";
  7. String valeurs[]=null;
  8. public void jspInit()
  9. {
  10. Connection connexion_db=null;
  11. Statement st=null;
  12. ResultSet curseur=null;
  13. ResultSetMetaData curseur_metadata=null;
  14. try{
  15. // connexion à la base ODBC
  16. Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" );
  17. connexion_db=DriverManager.getConnection("jdbc:odbc:pilote-odbc",user,mdp);
  18. //objet statement
  19. st = connexion_db.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
  20.       ResultSet.CONCUR_UPDATABLE);
  21. // Recuperation du contenu de la table      
  22. String requette = "select * from CARNET";
  23. curseur=st.executeQuery(requette);
  24. // Metadata
  25. curseur_metadata = curseur.getMetaData();
  26. ArrayList lstval = new ArrayList();
  27. while(curseur.next())
  28. {
  29.  lstval.add("nom" );
  30. }
  31.  valeurs = new String[lstval.size()];
  32. for(int i=0;i<lstval.size();i++)
  33. {
  34.  valeurs[i] = (String)lstval.get(i);
  35. }
  36. }
  37. catch(Exception e){
  38. e.printStackTrace();
  39. }
  40. finally{
  41. try { curseur.close(); } catch(Exception e){ }
  42. try { st.close();} catch(Exception e){ }
  43. try { connexion_db.close();} catch(Exception e){ }
  44. }
  45. }//jspInit
  46. %>
  47. <% for(int i=0;i<valeurs.length;i++)
  48. {
  49.  out.println("valeurs["+i+"] = "+valeurs[i]);
  50. }
  51. %>


 
Est ce que quelqu'un à dèja rencontrer ce problème?  
Si oui, j'espere qu'il a pas perdu autant de temps que moi sur ca...
 
En tout cas, merci d'avance les amis :)


Message édité par brethold le 23-02-2005 à 03:20:58
Reply

Marsh Posté le 23-02-2005 à 03:17:36   

Reply

Marsh Posté le 23-02-2005 à 11:51:00    

Vachement bizarre ton code :o
Essaie rien qu'en virant ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE de ton statement ?
Ensuite tu récupères un resultset mais tu fais rien avec (si tu mets "nom" dans un arraylist autant de fois que t'as d'enregistrements :pt1cable: )  
Le rsmetadata sert à rien non plus là...

Reply

Marsh Posté le 23-02-2005 à 12:39:40    

j'avais deja pensé à enlevé ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE, mais ca n'a rien changé. Pour le resultset, j'ai juste donné un example de moncode qui marche pas. Comme j'ai peu d'expérience avec JSP, je  peu pas dire si ca vien pas de la, mais en tesant ca marche toujours pas meme en enlevant le metadata qui sere a rien pour l'instant.

Reply

Marsh Posté le 23-02-2005 à 13:04:33    

C'est quoi la ligne 109 de ta servlet ?

Reply

Marsh Posté le 23-02-2005 à 13:30:22    

Voila la ligne 109 :
109-> for(int i=0;i<valeurs.length;i++)
 {
  out.println("valeurs["+i+"] = "+valeurs[i]);
 
113->   }
 
C'est vraiment bizzare ....

Reply

Marsh Posté le 23-02-2005 à 15:19:00    

Rapidement, je dirai que ton resultset est vide, donc lstval.length renvoie null ?

Reply

Marsh Posté le 23-02-2005 à 15:59:33    

Oui c'est ce que je pensé aussi. Mais si le reulset est NULL ca va dire que j'arrive pas a lire dans la base de données.
Je vais donc retester avec un petit programme juste la conexion avec Mysql et sans la methode jspInit() pour voir.
Merci en tout cas.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed