IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Conteneurs Web > Tomcat
        Comment gérer une connexion JDBC?
        Comment partager le context entre 2 webapps?

rechercher
precedent    sommaire    suivant    telecharger


Comment gérer une connexion JDBC?
auteur : christopheJ
Il faut que le jar du JDBC soit dans les lib de Tomcat
Puis il y a trois étapes :

dans le server.xml
<Context path="/Le_Contexte" 
             reloadable="true" 
             debug="0" 
             docBase="Le_DocBase" 
             workDir="Le_workDir"> 
  <Ressource name="jdbc/Le_Contexte"   auth="Container" type="javax.sql.DataSource"/> 
   <ResourceParams name="jdbc/Le_Contexte"> 
      <parameter> 
          <name>user</name><value>Le_Login_SGBD</value> 
      </parameter> 
      <parameter> 
          <name>password</name><value>Le_Password_SGBD</value> 
      </parameter> 
      <parameter> 
          <name>driverClassName</name><value>Le_Driver_SGBD</value> 
     </parameter> 
     <parameter> 
          <name>url</name><value>L_URL_Connection</value> 
    </parameter> 
</ResourceParams>                              
</Context>
Puis dans le web.xml il faut déclarer la ressource après la section <servlet-mapping>:
<resource-ref> 
  <description> 
   reference a la ressource BDD pour le pool 
  </description> 
   <res-ref-name>jdbc/Le_Contexte</res-ref-name> 
   <res-type>javax.sql.DataSource</res-type> 
   <res-auth>Container</res-auth> 
</resource-ref>
Enfin dans la méthode init de la servlet, il faut recupèrer la source de données
 try { 
   Context initCtx = new InitialContext(); 
   Context envCtx = (Context) initCtx.lookup("java:comp/env"); 
   ds = (DataSource) envCtx.lookup("jdbc/Le_Contexte"); 
     } catch (Exception e) { 
             //Gestion de l'erreur 
     }
sachant que ds est une variable d'instance de type DataSource.
Quand on a besoin de l'accès a la base de données, on fait:
Connection conn=ds.getConnection();
ne pas oublier de libérer avec un close après.
On peut aussi préciser dans le serveur xml, le nombre de connection que l'on veut dans le pool (nb max, nb min, nombre en attente)




Comment partager le context entre 2 webapps?
auteur : draken
Voici un exemple des lignes à rajouter dans le fichier conf/server.xml:
<Context path="/webapp1" 
                 docBase="webapps/webapp1" 
                 crossContext="true" 
                 debug="0" 
                 reloadable="true" > 
</Context> 
<Context path="/webapp2" 
                 docBase="webapps/webapp2" 
                 crossContext="true" 
                 debug="0" 
                 reloadable="true" > 
</Context>
Ne pas oublir d'inclure dans le <Context> l'attribut:
crossContext="true"
Ensuite au niveau de la servlet on accède à la seconde webapp de la manière suivante:
ServletContext myContext = this.getServletContext(); 
  ServletContext otherContext = myContext.getContext("/webapp1");

rechercher
precedent    sommaire    suivant    telecharger

Consultez les autres F.A.Q's

Valid XHTML 1.1!Valid CSS!


Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2004 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.