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 4.1] [oracle] Pool de connexion


Sujet :

Tomcat et TomEE Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2003
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 40
    Points : 26
    Points
    26
    Par défaut [tomcat 4.1] [oracle] Pool de connexion
    Bonjour,

    J'ai créer une servlet pour tester mon pool de connexion avec oracle. Le pool est gerer par tomcat par un fichier de configuration specifique :

    maquette.xml
    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
    <Context path = "/maquette" docbase="maquette" debug="0" reloadable="true">
    <Resource name="jdbc/maquette" auth="Container" type="javax.sql.DataSource" />
    <ResourceParams name="jdbc/maquette">
    <parameter> 
            <name>user</name>
            <value>PGC</value>
    </parameter>
    <parameter> 
            <name>password</name>
            <value>PGC</value>
    </parameter>
    <parameter> 
            <name>driverClassName</name>
            <value>oracle.jdbc.driver.OracleDriver</value>
    </parameter>
    <parameter> 
            <name>url</name>
            <value>jdbc:oracle:thin:@127.0.0.1:1521:PGC</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>
    ma servlet est la suivante:


    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
    / sevelet de test de connection 
     
     
     
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;
    import java.util.*;
    import javax.naming.*;
    import javax.sql.*;
    import oracle.jdbc.driver.*;
    public class UsersListPooledServlet extends HttpServlet
    {
    	private DataSource ds;
    	public void init(ServletConfig config) throws ServletException
    	{
    		super.init(config);
    		try
    		{
    		Context initCtx = new InitialContext();
    		Context envCtx = (Context) initCtx.lookup("java:comp/env");
    			ds = (DataSource) envCtx.lookup("jdbc/maquette");
    		}
    		catch (Exception e)
    		{
    			throw new UnavailableException(e.getMessage());
    		}
    	}
     
    	public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException
    	{
    		response.setContentType("text/html");
    		PrintWriter out  = response.getWriter();
     
    		out.println("<html>"); 
    		out.println("<head>"); 
    		out.println("<title>test list des users</title>"); 
    		out.println("</head>"); 
    		out.println("<body>"); 
     
    		out.println("<h1>Contacts</h1>"); 
    		out.println("<table border=\"1\">"); 
    		out.println("<tr>"); 
    		out.println("<th>Prénom</th>"); 
    		out.println("<th>Nom</th>");
    		out.println("</tr>");
    		try
    		{
    			Connection con = ds.getConnection();
    			Statement s = con.createStatement();
    			ResultSet rs = s.executeQuery("SELECT * FROM USER ");
     
    			while(rs.next())
    			{
    				out.println("<tr>");
    				out.println("<td>"+ rs.getString("NOM")+"</td>");
    				out.println("<td>"+ rs.getString("PRENOM")+"</td>");
    			}
     
    			rs.close();
    			s.close();
    			con.close();
    			}
    			catch (SQLException sqle) {
    				response.sendError(500, "Exception lors dela communication avec la base de données: " + sqle);
    				}
    		out.println("</table>");
    		out.println("</body>");
    		out.println("</html>");
    		}
    }
    lors du chargement de mon appli, sous IE j'obtient une erreur 505:

    type Rapport d''état

    message Exception lors dela communication avec la base de données: java.sql.SQLException: Cannot load JDBC driver class 'null'

    description Le serveur a recontrer une erreur interne (Exception lors dela communication avec la base de données: java.sql.SQLException: Cannot load JDBC driver class 'null') qui l'a empèché de satisfaire la requête.


    est dans les logs de tomcat l'erreur suivate:

    2003-09-21 10:50:41 StandardContext[/maquette]: Le démarrage des ressources a échoué:
    java.lang.NullPointerException
    at java.io.File.<init>(File.java:180)
    at org.apache.catalina.core.StandardContext.getBasePath(StandardContext.java:3888)...

    2003-09-21 10:50:41 StandardHost[localhost]: Erreur lors du déploiement de l'application pour le chemin de contexte null
    java.lang.NullPointerException
    at org.apache.commons.digester.Digester.createSAXException(Digester.java:2540)...

    2003-09-21 10:50:41 HostConfig[localhost] Erreur lors du déploiement du descripteur de configuration maquette.xml
    java.io.IOException: java.lang.NullPointerException
    at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:391)
    at org.apache.catalina.core.StandardHost.install(StandardHost.java:803)...


    DSl c'est un peu long, mais je suis debutant en prog et votre aide me sera précieuse, merci.

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Février 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 119
    Points : 138
    Points
    138
    Par défaut
    Salut,

    -> Premièrement, ton fichier maquette.xml est FAUX.
    Alors j'ai quelques question pour toi
    1- Où as-tu vu que les ressources JNDI pouvaient être configuré ailleurs que dans les fichiers /WEB-INF/web.xml ou $CATALINA_HOME/conf/server.xml ?

    2- As-tu placé le driver JDBC d'oracle dans le dossier $CATALINA_HOME/common/lib ? (si c'est pour Oracle 8 : c'est classes12.zip si Oracle 9 classes14.zip)


    Voila, si tu peux répondre, et on verra par ou commencer

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2003
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 40
    Points : 26
    Points
    26
    Par défaut
    Merci de porter attention à mon message !

    1- On peut d'apres ( Tomcat par la pratique aux editions Eyrolles), à partie de la version 4.1 de tomcat crée, un context dans un fichier différent que le serveur.xml ( le fichier admin.xml et manager.xml en sont les exemples), par contre en ce qui concerne le fichier web.xml il n'y po de changement.

    2- Oui le driver jdbc d'oracle est bien dans dossier $CATALINA_HOME/common/lib par precotion je l'ai meme mis dans dossier $CATALINA_HOME/shared/lib, ce fichier que j'ai renomé en classes12.jar.

    J'ai l'impression que c'est le driver qu'il n'arrive po à trouver !

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Février 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 119
    Points : 138
    Points
    138
    Par défaut
    Hello,

    Quand je vois
    Le démarrage des ressources a échoué
    J'ai envie de dire que c'est à cause de ton fichier des ressources.

    Pour les drivers JDBC, pourquoi l'avoir renommé en jar ? Mais je pense pas que ca ait son importance.

    Bon mais la je peux rien pour toi moi.
    Désolé

  5. #5
    Nouveau membre du Club
    Inscrit en
    Septembre 2003
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 40
    Points : 26
    Points
    26
    Par défaut
    Merci, il n'y po de quoi à etre DSL

    Pour le renomage du zip en jar , j'ai vu ca sur les howto du site d'oracle.
    Je vais essayer de ne po utiliser un fichier de ressource à part et de tout mettre dans le fichier server.xml .

    Pourais po faire l'essai dans la foulé , la poste sur lequel je fais mes tests viens de rendre l'âme ( c le disque qui viens de lacher) .

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2003
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 40
    Points : 26
    Points
    26
    Par défaut
    voila, une nouvelle erreur,

    j'ai juste changer dans ma servlet la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ds = (Datasource) envCtx.lookup("jbbc/maquette");
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Datasource ds =  (Datasource) envCtx.lookup("jbc/maquette");
    et maintenant sur la page j'obtient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       Le serveur a recontrer une erreur interne () qui l'a empèché de satisfaire la requête.
     
    exception 
     
    java.lang.NullPointerException
    	at UsersListPooledServlet.doGet(UsersListPooledServlet.java:50)...

  7. #7
    Nouveau membre du Club
    Inscrit en
    Septembre 2003
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 40
    Points : 26
    Points
    26
    Par défaut
    ouf , je suis po au bout de mes peines avec java !

    Braim t'avais raison c'est mon fichier maquette.xml , est c'etait une pauvre erreur de synthaxe

    Voila:

    <Context path = "/maquette" docbase="maquette" debug="0" reloadable="true">

    erreur corriger:

    <Context path="/maquette" docbase="maquette" debug="0" reloadable="true">

    hé ui un espace en trop, Bon ben chuis DSL pour tout ceux qui aurron lu ce post , mais le point positif c que l'on aurra apris qu'avec tomcat 4.1 on peut créer un context dans un fichier différent que le serveur.xml .

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

Discussions similaires

  1. [Struts 1 / Oracle 11g / Tomcat] Pool de connexion
    Par ndeyekhar dans le forum Tomcat et TomEE
    Réponses: 10
    Dernier message: 15/04/2015, 18h16
  2. Réponses: 0
    Dernier message: 19/03/2012, 18h21
  3. [Tomcat] Pool de connexion
    Par pataluc dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 05/04/2005, 16h14
  4. [TOMCAT] Ressource globale pool de connexion partagée
    Par ren0 dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 15/03/2005, 14h05
  5. [TOMCAT] pool de connexion postgres
    Par kitov dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 04/06/2004, 16h13

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