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 :

[Struts][Tomcat] ERREUR : le nom jdbc n'est pas lié à ce contexte.


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre régulier Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Points : 74
    Points
    74
    Par défaut [Struts][Tomcat] ERREUR : le nom jdbc n'est pas lié à ce contexte.
    Je viens de rencontrer un problème suite à l'utilisation d'une DataSource. Une erreur courante que je n'arrive pourtant pas à résoudre :
    javax.naming.NameNotFound Exception : le nom jdbc n'est pas lié à ce contexte.

    Voici mon code pour paramétrer la datasource :

    Mon fichier web.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
    34
    35
    36
     
    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
        <servlet>
            <servlet-name>action</servlet-name>
            <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
            <init-param>
                <param-name>config</param-name>
                <param-value>/WEB-INF/struts-config.xml</param-value>
            </init-param>
            <init-param>
                <param-name>debug</param-name>
                <param-value>2</param-value>
            </init-param>
            <init-param>
                <param-name>detail</param-name>
                <param-value>2</param-value>
            </init-param>
            <load-on-startup>2</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>action</servlet-name>
            <url-pattern>*.do</url-pattern>
        </servlet-mapping>  
        <resource-ref>
            <description>Pool de connection</description>
            <res-ref-name>jdbc/monAppli</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
            <res-sharing-scope>Shareable</res-sharing-scope>
        </resource-ref>
        <session-config><session-timeout>
                30
            </session-timeout></session-config><welcome-file-list><welcome-file>
                index.jsp
            </welcome-file></welcome-file-list>
        </web-app>
    Mon fichier context.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <Context docBase="\monAppli" path="/monAppli" useNaming="true">
      <ResourceLink global="jdbc/monAppli" name="jdbc/monAppli" type="javax.sql.DataSource"/>
      <Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="8" maxIdle="8" maxWait="10000" name="jdbc/monAppli" password="monpassword" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/mabdd?autoReconnect=true" username="monusername"/>
    </Context>
    Mon code :
    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
     
    public abstract class BaseDAO {
     
        private static final String JNDI_DATASOURCE = "java:comp/env/jdbc/monAppli";
        private DataSource dataSource;
     
        public BaseDAO() {
            super();
            try {
                Context ctx = new InitialContext();
                this.dataSource = (DataSource) ctx.lookup(JNDI_DATASOURCE);
            } catch (NamingException ex) {
                ex.printStackTrace();
            }
        }
     
        public void closeResources(ResultSet rset, Statement stmt, Connection conn) {
            if (rset != null) {
                try {
                    rset.close();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
     
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
     
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
        }
     
        public Connection getConnection() {
            Connection conn = null;
            try {
                conn = this.dataSource.getConnection();
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
            return conn;
        }
    }
    En feuilletant les forums et le web, j'ai trouvé des raisons possibles à cette erreur, mais aucune correction n'a résolu ce problème (j'ai mis useNaming à true, j'ai utilisé username et non user, etc...).

    Je ne vois pas ce qui cloche mais j'ai quelques hypothèses :
    - la déclaration de la DataSource serait mal placée (mauvais niveau) dans le fichier web.xml ?
    - il manquerait le paramètre <Context /> dans le fichier server.xml ?

    Seulement, si cette deuxième hypothèse s'avère être la cause de l'erreur alors je serais déçue. J'ai configuré la DataSource dans le fichier context.xml au lieu du fichier server.xml de Tomcat afin de ne pas avoir à faire de modif lorsque je déploierai mon application sur un autre Tomcat que celui que j'utilise en développement avec NetBeans.

    Quelqu'un a la recette qui gagne ?

  2. #2
    Membre régulier Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Points : 74
    Points
    74
    Par défaut
    Autre idée :
    Est ce que la version de Tomcat peut être mise en cause ? J'utilise un bundled Tomcat 5.5.9.

    La je ne sais vraiment plus quoi tenter ! Donnez moi des idées svp !!!



  3. #3
    Membre régulier Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Points : 74
    Points
    74
    Par défaut
    La je ne sais plus quoi faire pour résoudre mon problème ! Donnez moi toutes vos idées, même les plus saugrenues !

  4. #4
    Membre régulier Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Points : 74
    Points
    74
    Par défaut
    J'ai essayé de revoir le placement de la déclaration de la ressource JNDI dans mon fichier web.xml, c'est-à-dire de le mettre à la fin juste avant </web-app>. Et ......... ca ne marche pas mieux !


  5. #5
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    T'es sûr que t'as pas des fichiers de context résiduels de différentes manips?
    Efface le work de Tomcat.
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  6. #6
    Membre régulier Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Points : 74
    Points
    74
    Par défaut
    Merci de ton aide Laurent.B !

    Je viens de relancer mon appli après avoir effacé le work de Tomcat, mais je me retrouve avec la même erreur.

    Par contre, quand je lance l'appli j'ai le message suivant :
    INFO: Le conteneur org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/monAppli] a déjà été démarré
    javax.naming.NameNotFoundException: Le Nom jdbc n'est pas lié à ce Contexte
    at org.apache.naming.NamingContext.lookup(NamingContext.java:769)


    Est ce normal que cela s'affiche alors que j'ai effacé le work ?

    Sinon, j'ai pensé à une autre cause d'erreur. Dans la doc de Tomcat 5.5, il est dit que l'utilisation des ressources jndi nécessite que l'on mette le driver jdbc accessible aussi bien à l'application qu'aux classes internes de Tomcat.
    Par le biais de NetBeans, j'ai pu définir l'emplacement du driver et créer mes tables directement avec l'interface de NetBeans. Par contre, je n'ai à aucun moment installé le driver (fichier jar) dans le répertoire common/lib. Cela peut il poser problème ?

    Le "hic" c'est que j'ai recherché le dossier de ce nom et j'y ai rajouté le fichier jar. Il se trouve à l'emplacement : C:\Program Files\netbeans-5.0\enterprise2\jakarta-tomcat-5.5.9\common\lib.
    Mon soucis vient du fait que lorsque j'ai recherché les répertoires nommés work, j'en ai trouvé 2 correspondant à mon bundled tomcat de netbeans à 2 emplacements différents :
    - C:\Program Files\netbeans-5.0\enterprise2\jakarta-tomcat-5.5.9
    - C:\Documents and Settings\Stagiaire\.netbeans\5.0\jakarta-tomcat-5.5.9_base
    Dans le premier emplacement se trouvent bien les dossiers work et common/lib tandis que dans le deuxième (lié à ma session Stagiaire) ne se trouve qu'un dossier work et pas de dossier common/lib, et que c'est dans ce dossier work que mon application a été déployée.

    Que faire ?

  7. #7
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Que faire?

    1. Chercher où monAppli serait référencée deux fois à des endroits différents. Le work, n'y est pas pour grand chose à mon avis mais il vallait mieux l'effacer.
    Regarde plutot dans server.xml, monAppli.xml qui doivent trainer dans le répertoire conf de Tomcat.

    2. S'assurer effectivement que le driver à la base de données est bien dans common/lib mais ça c'est fait...

    3. Regarder dans l'interface d'admin de Tomcat ce que tu vois au niveau des différents contextes (il faut avoir déployé admin.war fournit à part)

    4. En dernier lieu, récupérer la dernière version de Tomcat et repartir avec un instance toute propre...
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  8. #8
    Membre régulier Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Points : 74
    Points
    74
    Par défaut
    Merci, je vais suivre ta recette et je reviendrai avec le résultat !

  9. #9
    Membre régulier Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Points : 74
    Points
    74
    Par défaut
    Re,

    J'ai commencé à faire ce tu dis Laurent.B mais je ne comprends pas bien ce qu'il faut constater.

    1 --> J'ai recherché où se trouvaient server.xml et monAppli.xml mais je ne les ai trouvé qu'à un seul endroit contrairement à ce que j'aurais pensé :
    - C:\Documents and Settings\Stagiaire\.netbeans\5.0\jakarta-tomcat-5.5.9_base\conf\Catalina\localhost\monAppli
    - C:\Documents and Settings\Stagiaire\.netbeans\5.0\jakarta-tomcat-5.5.9_base\conf\server.xml

    2 --> J'ai bien mon Driver dans le dossier C:\Program Files\netbeans-5.0\enterprise2\jakarta-tomcat-5.5.9\common\lib\mysql-connector-java-3.1.12-bin.jar

    Donc je ne pense pas avoir de problème à ces niveaux.

    3 --> J'ai regardé dans l'interface d'admin de Tomcat ce qu'on y peut voir au niveau des différents contextes mais là je vois peu de choses :



    Est ce là qu'il me manque quelque chose ? Je pensais ne rien avoir à ajouter au fichier de conf de Tomcat parce que j'ai mis tous les paramètres nécessaires à la définition de la DataSource dans le fichier context.xml de mon appli. Que me manque t'il alors ?

  10. #10
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Bon tu as défini ta data source dans le web.xml donc perso je n'aurais pas fait comme ça mais ça doit fonctionner, par contre, je pense qu'il manque quelque chose car tu déclares t'appuyer sur le container...

    Moi je retirerais la datasource du web.xml et je la configurerais par l'interface d'admin au niveau du context (dans services) de monAppli.
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  11. #11
    Membre régulier Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Points : 74
    Points
    74
    Par défaut
    Au départ je voulais éviter de modifier quoi que ce soit dans le fichier server.xml afin de ne pas avoir à se soucier du serveur Tomcat qui sera utilisé lors du déploiement. Mais ça n'est pas grand chose que de refaire une déclaration du DataSource dans le fichier du server.xml du futur Tomcat...

    Je vais essayer...


    NB du Tuto Gestion d'un pool de connexions SGBD par Tomcat de Christophe J. :
    3.2. Le fichier server.xml
    Il s'agit ici de configurer la "resource factory" de Tomcat. Cette configuration peut aussi être faite dans le fichier META-INF\context.xml de l'archive war utilisée pour le déploiement de l'application web sur les versions 5.x de Tomcat.
    J'ai repris ici toute la partie relative au contexte de l'application web TutoPool. Cette section est à placée avec les autres déclarations de contexte entre les balises <Host> du fichier server.xml.

    NB : Sur les deux liens suivante du site d'apache, il semble d'ailleurs surprenant que la configuration d'une DataSource ne soit pas faite de la même façon. Sur le premier lien, il utilise les fichiers context.xml et web.xml tandis que pour le deuxième, il utilise server.xml et web.xml :
    jndi-resources-howto.html
    jndi-datasource-examples-howto.html

  12. #12
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Oui oui, y a pas de problème, il y a plusieurs manières de faire...
    Si tu ne déclares qu'un lien JNDI au sein de ta webapp, plutot que de lui paramétrer entièrement toute la connexion à la DataSource, ça permet une très grande souplesse car la DataSource de dev ne sera pas forcément connectée au même type de SGBD que la DataSource de prod. Ca évite d'avoir à repackager ton appli (war) pour la prod spécifiquement. Par contre, il faut avoir accès à l'interface d'admin du serveur (Tomcat ou autre) pour définir les DataSources et donc les liens JNDI.

    Voilà ce qu'il faut savoir.
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  13. #13
    Membre régulier Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Points : 74
    Points
    74
    Par défaut
    Voilà ce que j'ai fait :

    Mon fichier context.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?xml version="1.0" encoding="UTF-8"?>
    <Context path="/monAppli"/>
    Mon fichier server.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
     
    <GlobalNamingResources>
        <Resource
          name="jdbc/monAppliDS"
          type="javax.sql.DataSource"
          password="monpass"
          driverClassName="com.mysql.jdbc.Driver"
          maxIdle="30"
          maxWait="10000"
          validationQuery="SELECT 1"
          username="monusername"
          url="jdbc:mysql://localhost:3306/monappli?autoReconnect=true"
          maxActive="100"/>
      </GlobalNamingResources>
    Mon fichier web.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <resource-ref>
            <description>Pool de connection pour monAppli</description>
            <res-ref-name>jdbc/monAppliDS</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
            <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
    Et la ligne de code qui me rend la vie dure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ds = (DataSource)new InitialContext().lookup("java:comp/jdbc/monAppliDS");
    J'ai même pensé à vider le contenu du répertoire work avant de relancer mon appli. Mais....pas de chance....je termine avec la même erreur....

    Merci Laurent.B une fois de plus de m'avoir aidé car sans toi je n'ai plus d'idées.
    Je me demande si cela ne vient d'une toute petite bête erreur de syntaxe ou de norme. Est ce que le DriverClassName doit prendre "com.mysql.jdbc.Driver" ou alors "MySQL (Connector/Jdriver)" ?

    D'autres idées sinons ?

    Merci de votre patience !

  14. #14
    Membre régulier Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Points : 74
    Points
    74
    Par défaut
    Voici mon fichier server.xml en entier :

    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <Server
        port="8025">
      <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"
          name="UserDatabase"
          type="org.apache.catalina.UserDatabase"
          pathname="conf/tomcat-users.xml"
          factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/>
        <Resource
          name="jdbc/monAppliDS"
          type="javax.sql.DataSource"
          password="monpass"
          driverClassName="com.mysql.jdbc.Driver"
          maxIdle="30"
          maxWait="10000"
          validationQuery="SELECT 1"
          username="monusername"
          url="jdbc:mysql://localhost:3306/monappli?autoReconnect=true"
          maxActive="100"/>
      </GlobalNamingResources>
      <Service
          name="Catalina">
        <Connector
            URIEncoding="utf-8"
            port="8084"
            redirectPort="8443"
            minSpareThreads="25"
            connectionTimeout="20000"
            uRIEncoding="utf-8"
            maxThreads="150"
            maxSpareThreads="75"
            maxHttpHeaderSize="8192">
        </Connector>
        <Connector
            port="8009"
            redirectPort="8443"
            protocol="AJP/1.3">
        </Connector>
        <Engine
            defaultHost="localhost"
            name="Catalina">
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
          <Host
              appBase="webapps"
              autoDeploy="false"
              liveDeploy="false"
              name="localhost">
          </Host>
        </Engine>
      </Service>
    </Server>
    Il ne manquerait pas quelque part une balise <context> </context> ?


    Citation Envoyé par Laurent.B
    je pense qu'il manque quelque chose car tu déclares t'appuyer sur le container...

    Moi je retirerais la datasource du web.xml et je la configurerais par l'interface d'admin au niveau du context (dans services) de monAppli.
    Désolée mais je ne vois pas trop ce que cela signifie. Je pense que je dois garger la déclaration dans le web.xml mais qu'au lieu de configurer la DataSource dans le context.xml, je le fais dans le fichier server.xml par le biais de l'interface d'admin de Tomcat. Seulement, moi je ne met rien dans "services", je n'ai même pas de balises service d'utilisée... Peut tu m'éclaircir les idées ? Mici ^^

  15. #15
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Cette page te dit-elle quelque chose ?
    Pièce jointe 1728
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  16. #16
    Membre régulier Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Points : 74
    Points
    74
    Par défaut
    Oui merci ! Elle me dit plus que quelque chose puisque je l'ai utilisé plusieurs fois... D'ailleurs j'ai mis mon interface, onglet Data Sources, plus haut. Pourquoi ?

  17. #17
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Oui désolé... je n'avais pas relu.
    Donc, dans cette interface, tu dois voir l'arborescence suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    - Tomcat Server
       - Service
          - Host
             - / ...
             - /monAppli
    Dans /monAppli tu peux configurer ta data source.
    Est-ce de cette manière que tu procèdes ou fais-tu cela uniquement à la main?
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  18. #18
    Membre régulier Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Points : 74
    Points
    74
    Par défaut
    Euh ... comme une sauvage j'ai tout fait à la main...

    Mais seulement, je viens de remarquer que quand je configure la DataSource à la main, dès que le serveur est arrêté, il supprime tout ce que j'ai rajouté dans le server.xml. si j'utilise l'interface d'admin, la DataSource se retrouve dans les balise GlobalNamingResources...

  19. #19
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Tu as deux possibilités :
    - Déclarer une DataSource au sein du contexte de l'application.
    - Déclarer une DataSource au niveau global, puis déclarer un resource link, au sein du contexte de l'application, afin de lier l'application à la datasource globale ...
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  20. #20
    Membre régulier Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Points : 74
    Points
    74
    Par défaut
    Moi ce que je souhaite faire, c'est déclarer la DataSource au sein du contexte de l'application (dans le fichier context.xml). Mais cela ne fonctionne pas. Du coup, à force, j'ai essayé plein de choses, comme déclarer la DataSource dans le server.xml :
    - tout d'abord, je l'ai déclarée à partir de l'interface administrateur, qui me l'a placée dans le GlobalNamingResources --> toujours la même erreur à l'exécution
    - ensuite, je l'ai déplacée manuellement au niveau du tag <Host> </Host> --> toujours la même erreur à l'exécution et pire, quand j'arrête Tomcat, les lignes de déclaration disparaissent du server.xml

    Du coup, j'ai essayé de réaliser le test de connection à une BDD MySQL avec la page test.jsp sur le site d'Apache (JNDI Datasource How to), et même sur cet exemple j'ai une erreur --> Cannot load JDBC Driver ....

    Que puis je encore faire ?
    Essayer d'ecrire un truc dans le fichier struts-config.xml ? M'inscrire à une formation de toiletteuse pour chien ?

    Là, je manque d'inspiration...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Tomcat - Datasource] Le Nom jdbc n'est pas lié à ce Contexte
    Par xfacq dans le forum Tomcat et TomEE
    Réponses: 17
    Dernier message: 31/10/2012, 17h47
  2. Tomcat6 , le nom jdbc n'est pas lié à ce contexte.
    Par astrofiles dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 21/11/2008, 11h31
  3. [Tomcat 5.5.25] Le Nom jdbc n'est pas lié à ce Contexte
    Par FabienN dans le forum Tomcat et TomEE
    Réponses: 13
    Dernier message: 14/11/2008, 10h56
  4. Réponses: 3
    Dernier message: 25/06/2008, 14h01
  5. Réponses: 9
    Dernier message: 08/01/2008, 05h22

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