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

Servlets/JSP Java Discussion :

[pool de connexion] avec mysql et eclipse


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [pool de connexion] avec mysql et eclipse
    Bonjour,

    J'ai un mal fou à configurer mon connecting pool et là, je craque un peu. Il faut dire que je lutte également contre Tomcat et son interface d'administration, j'ai fini par configurer server.xml à la main.

    bon regardons ça ensemble :

    server.xml d'abord :

    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <Server>
      <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
      <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
      <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
      <GlobalNamingResources>
        <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
        <Resource auth="Container" 
        	description="User database that can be updated and saved" 
       	 	factory="org.apache.catalina.users.MemoryUserDatabaseFactory" 
        	name="UserDatabase" pathname="conf/tomcat-users.xml" 
        	type="org.apache.catalina.UserDatabase"/>
        <Resource driverClassName="com.mysql.jdbc.Driver" 
        	maxActive="8" maxIdle="8" maxWait="10000" 
        	name="jdbc/pano" 
        	password="tvbuilder" 
        	type="javax.sql.DataSource" 
        	url="jdbc:mysql://mercure.unige.ch/InformationPanneau" 
        	username="tvbuilder" 
        	validationQuery="SELECT 1"/>
      </GlobalNamingResources>
      <Service name="Catalina">
        <Connector connectionTimeout="20000" 
        	maxHttpHeaderSize="8192" 
        	maxSpareThreads="75" 
        	maxThreads="150" 
        	minSpareThreads="25" 
        	port="8080" 
        	redirectPort="8443">
        </Connector>
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443">
        </Connector>
        <Engine defaultHost="localhost" name="Catalina">
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
          <Host appBase="webapps" name="localhost">
          	<Context docBase="AffichageWeb" path="/AffichageWeb" reloadable="true" source="org.eclipse.jst.j2ee.server:AffichageWeb">
          	  <ResourceLink
        		global="jdbc/pano"
        		name="jdbc/PanneauDAffichage"
        		type="javax.sql.DataSource"/>
          	</Context>
          </Host>
        </Engine>
      </Service>
    </Server>
    Ensuite la méthode qui appelle ma base de données pour la première fois :

    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
     
    public boolean verifyLogin ( String login, String password )
    			throws AffichageException
    {
      Connection connection = null;
      ResultSet rs = null;
      boolean ok = false;
     
      String query = "SELECT * FROM Login WHERE (login=? AND password = PASSWORD (?)) ";
     
      try
        {
    	connection = ConnectionManagerJdbc.getInstance( ).getConnection( );
    	PreparedStatement ps = connection.prepareStatement( query );
    	ps.setString( 1, login );
    	ps.setString( 2, password );
    	rs = ps.executeQuery(  );
     
    	rs.first( );
    	if ( rs.isFirst( ) )
     	{
    	  ok = true;
    	}
       }
       catch ( SQLException e )
      {
    	log.error( "LoginJdbc :: verifyLogin :: " + e.toString( ) );
      }
      finally
      {
        closeConnection( connection );
      }
      return ok;
    }
    ma connexion en elle-même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    private void initDataSource() {
    try 
     {
      Context ctx = new InitialContext();
      fDataSource = (DataSource) ctx.lookup(DATASOURCE);
      log.info("Connection par datasource");
      } catch (NamingException e) {
    	log.error("Erreur JNDI : " + e);
    	return;
      }
    }
    enfin j'utilise le connectJ : mysql-connector-java-3.1.14-bin.jar qui se situe dans le common/lib de tomcat
    et j'utilise tomcat 5.5.9

    Où est-ce que j'ai complètement faux ? Je vous remercie de votre aide, j'aimerai tellement passé à l'étape suivante

  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,
    il me semble qu'il manque au moins la référence au JNDI : name="jdbc/PanneauDAffichage"

    dans l'initialisation du DataSource.
    fDataSource = (DataSource) ctx.lookup(DATASOURCE);
    doit plutot être du genre :
    fDataSource = (DataSource) ctx.lookup(jdbc/PanneauDAffichage);

    Bon courage

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci.

    DATASOURCE contient le nom du JNDI qui est dans un fichier conf. Il vaut :
    datasource=java:comp/env/jdbc/PanneauDAffichage

  4. #4
    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
    oups pardon
    par contre avez vous essayé d'enlever java:comp ???

    perso nous avons une connexion a une base mysql et nous n'utilisons pas java;comp

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'étais entrain de le faire... Je vais vérifier que tous les autres paramètres sont en place, mais ça n'a pas l'air de fonctionner.

    PS : vous ne pouviez pas savoir pour DATASOURCE.

  6. #6
    Invité
    Invité(e)
    Par défaut
    mon ressourcelink a disparu... c'est aussi contre ça que je me bats depuis hier... mes configurations de server.xml disparaisse brusquement.

  7. #7
    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
    après vérif sur mon appli, je trouve aussi un bout de code dans le web.xml du projet :
    <resource-ref>
    <description>Oracle Datasource example</description>
    <res-ref-name>jdbc/Historique_tomcat</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>

    où Hitsorique_tomcat est le nom de mon Datasource

    et pour être plus précise voici mon server.xml :

    <Context path="/Historique" docBase="Historique" debug="0" reloadable="true" >


    <Resource name="jdbc/Historique_tomcat" auth="Container" type="javax.sql.DataSource"/>

    <ResourceParams name="jdbc/Historique_tomcat">

    <parameter>
    <name>username</name>
    <value>*****</value>
    </parameter>

    <parameter>
    <name>password</name>
    <value>****</value>
    </parameter>

    <parameter>
    <name>driverClassName</name>
    <value>oracle.jdbc.driver.OracleDriver</value>
    </parameter>
    <parameter>
    <name>url</name>
    <value>jdbc:oracle:thin:@fangorn.univ-tlse1.fr:15**:***</value>
    </parameter>
    <parameter>
    <name>maxActive</name>
    <value>20</value>
    </parameter>
    <parameter>
    <name>maxIdle</name>
    <value>10</value>
    </parameter>
    <parameter>
    <name>maxWait</name>
    <value>-1</value>
    </parameter>



    </ResourceParams>
    </Context>


    enfin la libraire des drivers, où l'avez vous mise ? dans common/lib ?
    pouvez vous nou donner votre erreur ?

  8. #8
    Invité
    Invité(e)
    Par défaut
    désolée, j'ai oublié de donner mon erreur !

    voici l'erreur avec le dernier test (donc sans le java:comp:env)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    javax.naming.NameNotFoundException: Le Nom jdbc n'est pas lié à ce Contexte
    mon driver est dans common/lib en effet.

    edit : toujours un probleme avec mon RessourceLink pour l'instant. je corrige.

Discussions similaires

  1. Erreur de connexion avec Mysql -> Driver bugué
    Par kedare dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 07/02/2007, 08h47
  2. Pas de connexion avec MySQL ?
    Par spekal dans le forum JDBC
    Réponses: 15
    Dernier message: 23/01/2007, 18h38
  3. Pool de connexion avec struts
    Par vikrem dans le forum Struts 1
    Réponses: 6
    Dernier message: 27/08/2006, 23h25
  4. [SGBD] Problème de connexion avec mysql
    Par weshwesh dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 29/06/2006, 10h30
  5. Pool de connexion avec Tomcat 5.5
    Par partyboy dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 13/06/2005, 16h33

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