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 :

Tomcat avec Mysql


Sujet :

Tomcat et TomEE Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    195
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 195
    Par défaut Tomcat avec Mysql
    Salut tout le monde,

    J'essai de dépolyer une application sous Tomcat en utilisant comme base de données MySQL, voici les procédures que j'ai fait mais sans réussir à me connecter à MySQL:

    Dans le fichier server.xml de Tomcat j'ai ajouté le context entre <Host> et </Host> comme suit:
    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
     
    <Context path="http://localhost:8080/monApp" docBase="/monApp"
    debug="5" reloadable="true" crossContext="true">
     
    	<Logger className="org.apache.catalina.logger.FileLogger"
    	            prefix="localhost_monApp_log." suffix=".txt"
    	            timestamp="true"/>
     
    	<Resource name="jdbc/maBD"
    	               auth="Container"
    		    type="javax.sql.DataSource"/>
     
    	<ResourceParams name="jdbc/monApp">
    		<parameter>
    			<name>factory</name>
    			<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    		</parameter>
     
    	           <!-- Maximum number of dB connections in pool. Make sure you configure your mysqld max_connections large enough to handle all of your db connections. Set to -1 for no limit.-->
     
                          <parameter>
    			<name>maxActive</name>
    			<value>100</value>
    		</parameter>
     
    		<!-- Maximum number of idle dB connections to retain in pool.
    	                  Set to 0 for no limit.-->
     
    		<parameter>
    			<name>maxIdle</name>
    			<value>30</value>
    	           </parameter>
     
    		<!-- Maximum time to wait for a dB connection to become
    available in ms, in this example 10 seconds. An Exception is thrown if this
    timeout is exceeded.  Set to -1 to wait indefinitely.-->
     
    	           <parameter>
    			<name>maxWait</name>
    			<value>10000</value>
    		</parameter>
     
    		<!-- MySQL dB username and password for dB connections  -->
    		<parameter>
    			<name>username</name>
    			<value>myName</value>
    		</parameter>
     
                          <parameter>
    			<name>password</name>
    			<value>myPassword</value>
    		</parameter>
     
    		<!-- Class name for mm.mysql JDBC driver -->
     
        	           <parameter>
    			<name>driverClassName</name>
    			<value>org.gjt.mm.mysql.Driver</value>
    		</parameter>
     
    		<!-- The JDBC connection url for connecting to your MySQL dB.-->
     
                          <parameter>
    			<name>url</name>
    			<value>jdbc:mysql://localhost:3306/maBD</value>
    		</parameter>
    	</ResourceParams>
    </Context>
    Dans web.xml de WEB-INF de mon application j'ai ajouté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <description>MySQL Courrier App</description>
    <resource-ref>
    	<description>DB Connection</description>
    	<res-ref-name>jdbc/maBD</res-ref-name>
    	<res-type>javax.sql.DataSource</res-type>
    	<res-auth>Container</res-auth>
    </resource-ref>
    J'utilise la version 5.5.29 de Tomcat, et je veux signaler que ça marche bien quand j'exécute mon application sous un serveur Jetty.

    Je vous remercie d'avance de vos propositions.

    Cordialement.

  2. #2
    Membre Expert
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Par défaut
    J'ai 2 remarques :
    • ta conf est dans un style Tomcat 5.0, il faudrait que tu revoies la doc de la version 5.5
    • il faut que tu ajoutes une référence dans le fichier META-INF/context.xml

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    195
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 195
    Par défaut
    D'accord j'y travaillerai, merci pour ta réponse!

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    195
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 195
    Par défaut
    Re-salut,

    J'ai effectué des modifications mais je rencontre toujours le même problème, voici ce que j'ai fait:

    J'ai installé Tomcat 6.0.24 et j'ai lu la doc correspondante sur http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html

    Ainsi je dispose du fichier context.xml dans META-INF sous la forme (j'ai supprimé les commentaires pour la lisibilité du code)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?xml version='1.0' encoding='utf-8'?>
    <Context debug="5" reloadable="true" crossContext="true">
      <Resource name="jdbc/maDB" auth="Container" type="javax.sql.DataSource"
                   maxActive="100" maxIdle="30" maxWait="10000"
                   username="monNom" password="monPass" driverClassName="com.mysql.jdbc.Driver"
                   url="jdbc:mysql://localhost:3306/maDB"/>
    </Context>
    et j'ai ajouté également ces lignes dans le fichier web.xml comme indiqué dans la documentation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <resource-ref>
    	<description>MySQL DB Connection</description>
    	<res-ref-name>jdbc/maDB</res-ref-name>
    	<res-type>javax.sql.DataSource</res-type>
    	<res-auth>Container</res-auth>
    </resource-ref>
    J'ai aussi ajouté les deux fichiers: mm.mysql-2.0.14.jar et mysql-connector-java-3.0.11-stable-bin.jar dans le répertoir lib

    Je veux aussi signaler qu'en regardant dans le log j'ai aperçu ces lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    GRAVE: A web application registered the JBDC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
    22 juil. 2010 18:00:15 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
    GRAVE: A web application appears to have started a thread named [Timer-0] but has failed to stop it. This is very likely to create a memory leak.
    22 juil. 2010 18:00:15 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
    GRAVE: A web application appears to have started a thread named [MySQL Statement Cancellation Timer] but has failed to stop it. This is very likely to create a memory leak.
    22 juil. 2010 18:00:15 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
    GRAVE: A web application created a ThreadLocal with key of type [org.springframework.core.NamedThreadLocal] (value [Prototype beans currently in creation]) and a value of type [null] (value [null]) but failed to remove it when the web application was stopped. To prevent a memory leak, the ThreadLocal has been forcibly removed.
    22 juil. 2010 18:00:15 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
    GRAVE: A web application created a ThreadLocal with key of type [org.springframework.core.NamedThreadLocal] (value [Prototype beans currently in creation]) and a value of type [null] (value [null]) but failed to remove it when the web application was stopped. To prevent a memory leak, the ThreadLocal has been forcibly removed.
    S'il y'a une valeur d'un paramètre à corriger ou quelque chose de manquant je vous remercie encore de me l'indiquer.

  5. #5
    Membre Expert
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Par défaut
    Ces traces ne disent rien sur l'impossibilité de se connecter. Elle sont générées par le nouveau composant anti memory-leak.
    Il faudrait que tu nous trouves des traces d'erreur produites par ton application au moment où elle essaie de se connecter.

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    195
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 195
    Par défaut
    Je ne sais pas comment obtenir les traces produites par l'application puisque le seul message d'erreur que j'obtien est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    faultCode:Server.Error.Request faultString:'HTTP request error'
    faultDetail:'Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false 
    eventPhase=2 text="Error #2032"]. URL: http://localhost:8080/app-serveur/services/
    utilisateur/authentification?login=monLogin&password=monPass'
    Je travaille la couche présentation avec le framework Flex. Comme j'ai signalé dans un message précédent, l'application marche bien quand je la demarre sous un serveur Jetty, ce problème se pose just au niveau de Tomcat

    SVP je veux aussi savoir si le fichier context.xml est bien configuré et que si les paramètres précisés sont correctes.

    Je vous remercie encore de votre aide.

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/05/2010, 13h09
  2. gros problème tomcat avec mysql
    Par filipe93 dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 26/11/2006, 14h02
  3. Help ODBC avec Mysql
    Par Ashura75013 dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/02/2004, 08h11
  4. Probleme avec Mysql
    Par kevinss dans le forum Administration
    Réponses: 5
    Dernier message: 31/10/2003, 10h43
  5. Problème d'insertion avec MySQL
    Par Sonny dans le forum ASP
    Réponses: 13
    Dernier message: 28/08/2003, 13h52

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