IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

JDBC-ODBC avec Sybase


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Par défaut JDBC-ODBC avec Sybase
    Bonjour à tous et merci d'avance pour votre aide.

    Voici mon problème, j'ai créé une servlet pour tester la connection entre Java et Sybase. J'utilise le bridge JDBC-ODBC mais cela ne semble pas marcher...

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    import java.io.*;
    import java.sql.*;
     
    import javax.servlet.*;
    import javax.servlet.http.*;
     
    public class testSybase extends HttpServlet
    {
    	  private static final long serialVersionUID = 0;
    	  private Connection con;
    	  private PrintWriter out;
     
    	  public void init(ServletConfig conf) throws ServletException
    	    {
    	    super.init(conf);
    	    try{
    	    	Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    	    	con = DriverManager.getConnection ("jdbc:odbc:SISSYBA2");
    		}
    	    catch(Exception e)
    	    {
    	      out.println(e);
    	    }
    	  }
     
    	  public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
    	    {
    	    res.setContentType("text/html");
    	    try
    	      {
    	      out = res.getWriter();
    	      out.println("<html><head><title>");
    	      out.println("JDBC Servlet");
    	      out.println("</title></head><body>");
    	      //out.println(con.isClosed());
    	      /*Statement stmt = con.createStatement();
    	      ResultSet rs = stmt.executeQuery("SELECT * FROM CLIENTS;");
    	      out.println("<UL>");
     
    	      while(rs.next())
    	        {
    	        out.println("<LI>" + rs.getString("TCLIRAISON"));
    	        }
    	      out.println("</UL>");
    	      rs.close();
    	      stmt.close();
    	      }
    	    catch(SQLException e)
    	      {
    	      out.println("Exception SQL");
    	      */}
    	    catch(IOException e)
    	      {
    	      }
     
    	    out.println("</body></html>");
    	    out.close();
    	    }
     
    	  public void destroy()
    	    {
    	    try
    	      {
    	      con.close();
    	      }
    	    catch(SQLException e)
    	      {
    	        ;
    	      }
    	    }
     
    	  }
    et voici le rapport d'erreur :
    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
     
    Etat HTTP 500 -
     
    type Rapport d'exception
     
    message
     
    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
     
    exception
     
    javax.servlet.ServletException: "Servlet.init()" pour la servlet testSybase a généré une exception
    	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    	org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    	java.lang.Thread.run(Unknown Source)
     
    cause mère
     
    java.lang.NullPointerException
    	testSybase.init(testSybase.java:22)
    	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    	org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    	java.lang.Thread.run(Unknown Source)
    J'ai evidemment testé le driver ODBC et il fonctionne avec Excel.
    mes paramêtre sont il correcte ?
    faut-il ajouter quelques choses dans le classpath ?

  2. #2
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    Bon pour l'instant, ta manière d'implémenter les choses est à oublier. Ne met pas ce genre de choses dans ton init, essaye de voir du côté des DataSource que peut te fournir ton conteneur web, il gèrera la connexion à la bdd bien mieux que ça...
    Dans un premier temps, si tu as un NullPointerException c'est qu'effectivement l'appel à la bdd ne fonctionne pas mais c'est le "out.println(e);" qui provoque l'exception étant donné qu'à cet endroit précis, le out est null. Donc déjà utilise plutot un "System.out.println", ce sera plus facile. Ensuite, il faut déclarer le "PrintWriter out" à un endroit où tu peux l'initialiser correctement, c'est à dire dans service, et justement, tu le fais très bien avec "out = res.getWriter();".
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  3. #3
    Membre averti
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Par défaut
    C bon çà marche, la variable out n'est pas null puisqu'elle est initailisée avec
    Je sais que la manière d'implémenter n'est pas judicieuse, mais comme je l'ai dis c'est une servlet pour tester la connection entre Java et Sybase. donc le but n'est pas de faire une servlet avec le modèle MVC mais de voir si la connection et les driver fonctionne.

    Bon la solution étais simple , le rechargement du server tomcat n'avais pas du marcher. J'ai arrété tomcat et redémarré et le tour était joué...

    Désolé de vous avoir dérangé pour si peu.

    Et merci tous de même Laurent.B.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/04/2015, 18h54
  2. Réponses: 7
    Dernier message: 08/07/2014, 10h55
  3. Réponses: 1
    Dernier message: 28/05/2014, 11h12
  4. Java ODBC/JDBC Probleme avec MS/ACCESS
    Par GérardMartinelli dans le forum JDBC
    Réponses: 2
    Dernier message: 15/02/2012, 11h03
  5. Réponses: 12
    Dernier message: 23/10/2002, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo