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

Tomcat et TomEE Java Discussion :

JNDI sous Tomcat, class not found exception


Sujet :

Tomcat et TomEE Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 32
    Par défaut JNDI sous Tomcat, class not found exception
    Bonjour,
    J'essaie de recupérer une source de données avec JNDI sous tomcat 5.5.
    Tout se passe bien, jusqu'a la connection, Je recois une class not fuund exception Cannot load JDBC driver class 'com.mysql.jdbc.Driver'.

    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
     
    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
     
    DataSource ds = (DataSource) envCtx.lookup("jdbc/Persons");
     
    //ici je recois un class not found exception  
    // Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
    Connection con = ds.getConnection();
     
    //alors que ce bout de code marche parfaitement bien 
    //Class.forName("com.mysql.jdbc.Driver");
    //Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/person", "user", "pass");
     
    Statement st = con.createStatement();
    ResultSet res = st.executeQuery("select * from person");
    pourtant le fichier jar du driver est au bon endroit, la preuve, quand je recupère la connection de la facon habituelle, cela marche parfaitement bien.

    comprends pô...

  2. #2
    Membre averti
    Profil pro
    xxx
    Inscrit en
    Décembre 2004
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : xxx

    Informations forums :
    Inscription : Décembre 2004
    Messages : 51
    Par défaut
    Bonjour,
    avez déclaré votre connexion dans le fichier server.xml ?

  3. #3
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    As tu mis le jar mysql contenant les classes java necessaire à la compilation dans le classpath de lancement de tomcat?

  4. #4
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 32
    Par défaut
    J'ai essayé plusieurs emplacement pour le jar du driver mysql :
    - CATALINA_HOME/server/lib
    - CATALINA_HOME/common/lib
    - CATALINA_HOME/webapp/monapp/WEB-INF/lib
    Aucun ne fonctionne... En tout cas avec JNDI

    voici l'element context que j'ai ajouté au fichier serveur.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <Context docBase="jndiTuto" path="/jndiTuto" reloadable="true" 
          		source="org.eclipse.jst.j2ee.server:jndiTuto">
     
          		<Resource name="jdbc/Persons" auth="Container" type="javax.sql.DataSource"
                   maxActive="100" maxIdle="30" maxWait="10000"
                   username="user" password="pass" driverClassName="com.mysql.jdbc.Driver"
                   url="jdbc:mysql://localhost:3306/builder"/>
     
    </Context>
    JNDI trouve bien ces infos, mais c'est à l'instantiation de la connexion que le driver n'est pas chargé.

    voici le début du message 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
    org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
    	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:766)
    	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
    	at dbgs.jndi.JNDIServlet.doGet(JNDIServlet.java:61)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    	at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    	at java.net.URLClassLoader$1.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Unknown Source)
    	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:760)
    	... 18 more

  5. #5
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    normalement pour les drivers jdbc c'est Tomcat_install_dir\common\lib

  6. #6
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Normalement les 2 la devrait fonctionner :

    - CATALINA_HOME/common/lib
    - CATALINA_HOME/webapp/monapp/WEB-INF/lib

    CaTALINA_HOME EST bien défini sur le repertoire d'install de tomcat?

    En tout cas pas de probleme de nom dans ton pilote donc c'est un probleme 100% classpath selon mon diagnostic.

Discussions similaires

  1. Accès à un JNDI à distance, Class not found
    Par Mhamed_dev dans le forum Wildfly/JBoss
    Réponses: 0
    Dernier message: 01/01/2011, 01h20
  2. Mapping Exception : component class not found
    Par lion13 dans le forum Hibernate
    Réponses: 2
    Dernier message: 06/05/2008, 14h30
  3. [Tomcat] Class Not Found :JasperException
    Par zlavock dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 22/01/2008, 17h59
  4. [Quartz][Tomcat] Jobs.xml file not found exception
    Par Arnaud Giuliani dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 05/08/2005, 09h20
  5. [EJB Session] class not found exception ?
    Par champion dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 11/02/2005, 23h46

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