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 :

[Datasource Tomcat 4.x] définition fichier context.xml


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 18
    Points : 13
    Points
    13
    Par défaut [Datasource Tomcat 4.x] définition fichier context.xml
    Bonjour tlm,

    1- Je cherche à savoir s'il est possible avec Tomcat 4.x de créer une datasource sans toucher au server.xml notamment grace à l'utilisation d'un fichier context.xml à placer dans la webapp

    2- Si le 1) est possible, Je recherche de la docum sur la manière de faire.
    J'ai rien vu qui a trait à cette methode ni ds mes recherches google ni sur le site de tomcat, ni dans la faq.

    Si quelqu'un est à même de me renseigner là dessus je lui en serait très reconnaissant!

    Merci d'avance

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    A priori ça n'a pas l'air faisable avec Tomcat 4.x
    J'ai écumer tout le net et le seul endroit où l'on parle d'une définition de contexte séparé du server.xml c'est dans la faq Tomcat 5 (pas très explicite à ce sujet d'ailleurs)

    J'ai donc installé la version 5.5.17 de Tomcat afin de tester les datasources.

    La méthode de la configuration du contexte dans "server.xml" fonctionne impec.
    J'ai donc tenté une définition de la dataSource dans ma webapp.
    J'ai créé un fichier portant "le-nom-de-mon-contexte.xml" dans le repertoire WEB-INF/META-INF/ et supprimé la définition du contexte qui était dans "server.xml".
    Voici le contenu de mon fichier de context:
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <Context path="/tutoPool" 
    			docBase="tutoPool"
    			crossContext="true" 
    			reloadable="true" 
    			debug="1">
    			<WatchedResource>WEB-INF/web.xml</WatchedResource>
    			<Resource name="jdbc/tutopool" 
    				auth="Container"
    				type="javax.sql.DataSource" 
    				driverClassName="org.postgresql.Driver"
    				url="jdbc:postgresql://localhost:5432/base1"
    				username="****" 
    				password="****" 
    				maxActive="20" 
    				maxIdle="10"
    				maxWait="-1"/>
    </Context>
    Et quand je teste ma servlet j'obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Exception sur l'accès à la BDD
    org.apache.tomcat.dbcp.dbcp.SQLNestedException:
    Cannot create JDBC driver of class '' for connect URL 'null'


    Merci à tous ceux qui pourront m'apporter leur soutient

  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
    Salut, j'ai déjà eu cette erreur alors que j'avais bien ce qu'il fallait dans mon context.xml.

    J'ai refait la configuration du contexte de mon application via la console d'administration de Tomcat dans l'onglet Context (/MonAppli) --> Resources --> Data Sources.



    Dès que j'ai fait ça et redémarrer mon serveur, cela a fonctionné. Seulement à chaque redéploiement, j'etais obligé de refaire cette manip. Tomcat modifie le fichier MonAppli.xml et non pas context.xml alors tu devra copier le contenu du fichier MonAppli.xml dans context.xml pour que ta config fonctionne tout le temps. Suis je claire ? (parce que là je ne suis plus sûre)

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Merci pour ton aide Ultracoxy

    J'ai copié le contenu de mon "context".xml dans le fichier TOMCAT/conf/context.xml et sa fonctionne!
    Maitenant je pense qu'il doit y avoir moyen d'éviter cette copie. Le but pour moi étant de déployer une webapp avec le contexte dedans et que tomcat se débrouille tout seul.

    Si quelqu'un à d'autres infos

  5. #5
    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 c'est dommage de devoir faire cette copie (d'autant plus que ca m'a pris 2 semaines pour débugger vu la logique du message d'erreur !). Néanmoins, maintenant tu pourra réinstaller ton appli avec n'importe quel Tomcat sans avoir besoin de réutiliser la console. Pourvu que ton context.xml est bon une fois, ça n'a plus de raisons de se reproduire !

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    Pour que ton fichier de context soit automatiquement déployé par TOMCAT au moment du déploiement, il suffit simplement de le copier dans le répertoire META-INF/context.xml de ton WAR.
    Clic me...
    CV en ligne

    Il y a 10 types de personnes, celui qui connait le binaire, et l'autre...

    Pas de réponse en MP...Merci

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup Allwin ça fonctionne niquel

    C'est quand même bizarre que cette méthode ne soit pas officiellement décrite dans la doc Tomcat

    J'espère que ça pourra aider d'autres personnes dans la même situation

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    Deploying using the Client Deployer Package
    The deployer uses an unpacked web application as input (see the list of the properties used by the deployer below). A web application which is programatically deployed with the deployer may include Tomcat specific deployment configuration, by including a Context configuration XML file in /META-INF/context.xml.
    Clic me...
    CV en ligne

    Il y a 10 types de personnes, celui qui connait le binaire, et l'autre...

    Pas de réponse en MP...Merci

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 319
    Points : 351
    Points
    351
    Par défaut
    Super, merci pour toutes ces infos !! Jusqu'alors je ne savais pas que l'on pouvait définir le contexte à même l'archive WAR, me voilà déjà bien avancé... :]

    J'espère que ma question ne sera pas trop hors sujet, tentons...

    Suite à tout ce qui s'est dit je voudrais demander s'il est possible de spécifier dans le .WAR, en plus de la définition du contexte, à quel hôte attribuer l'application.

    En d'autres termes, si je veux déployer mon application sur http://pou3t/ plutôt que sur http://localhost/ comment dois-je m'y prendre ? Note : dans mon cas je veux accéder à mon application directement à la racine, d'où l'omission volontaire d'un nom de contexte après le nom d'hôte, localhost et pou3t étant deux noms de domaines pointant sur mon serveur Tomcat local.

    Dans le fichier server.xml j'ai défini un VirtualHost comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <Host name="pou3t">
    </Host>
    Maintenant j'aimerais qu'en glissant mon .WAR [où ?] le fichier context.xml de l'archive soit copié dans conf/Catalina/pou3t et non plus dans conf/Catalina/localhost et pouvoir accéder à mon application via http://pou3t/.

    La définition de mon contexte est de la forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <Context path="" docBase="myApplication">
        <Resource name="jdbc/myApplication" ... />
    </Context>
    Est-ce que je dois créer un dossier particulier dans les entrailles de Tomcat vers où je pourrai glisser mes .WAR ? Si oui, à quel endroit ? Les définitions de contexte allant simplement dans conf/Catalina/<hôte> il y a peut être quelquechose de similaires pour webapps ?

    Voili, voilou,

    En espérant avoir été clair... :)

    À+

  10. #10
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    Les host que tu définis dans tomcat n'ont rien à voir avec les noms déterminant l'accès à ton application.

    C'est un problème de DNS donc, de réseau

    Context est un sous éléments de Host donc non, tu ne peu pas spécifier le parent, c'est le parent qui te contiend.
    Par contre, tu peu avoir un servlet manager par host il me semble il te suffis donc de t'adresser au bon servlet (distinction par le port ou le nom dns) pour ton déploiement.
    Le renomage et le positionnement du fichier context.xml est automatiquement pris en charge par Tomcat
    Clic me...
    CV en ligne

    Il y a 10 types de personnes, celui qui connait le binaire, et l'autre...

    Pas de réponse en MP...Merci

  11. #11
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    pour info, le répertoire conf/Catalina/localhost suit une logique implacable :
    - conf: répertoire générale des fichiers de configuration
    - Catalina: nom standard du service par défaut <Service name="Catalina" ...>
    - localhost: nom standard du Host par défaut <Host name="localhost" ...>
    Clic me...
    CV en ligne

    Il y a 10 types de personnes, celui qui connait le binaire, et l'autre...

    Pas de réponse en MP...Merci

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 319
    Points : 351
    Points
    351
    Par défaut
    On est bien d'accord !

    En fait ce qu'il me fallait connaître c'est l'attribut appBase de l'élément <Host/>. J'ai créé un petit dossier "pou3t" et fixé ledit attribut à "pou3t" pour mon <Host/> et les applications se déploient sur http://pou3t/ quand je glisse mes .WAR dedans et non plus sur localhost. Aucune altération de la définition du contexte n'est donc à faire, c'est effetivement au niveau supérieur qu'il faut magouiller, soit au niveau de l'élément <Host/>.

    Bon maintenant j'ai des petits pépins de configuration d'Alias/URL mais c'est une autre histoire...

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

Discussions similaires

  1. Réponses: 29
    Dernier message: 24/01/2014, 09h33
  2. Réponses: 2
    Dernier message: 02/02/2012, 12h23
  3. [TOMCAT] parametrage du fichier web.xml
    Par sebos63 dans le forum Tomcat et TomEE
    Réponses: 12
    Dernier message: 06/05/2010, 12h09
  4. tomcat 6 - JNDI syntaxe context.xml fichier .properties
    Par plm12 dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 30/09/2008, 16h51
  5. [Tomcat]Etat HTTP 404, fichier web.xml inéxistant
    Par subzero82 dans le forum Tomcat et TomEE
    Réponses: 12
    Dernier message: 09/05/2006, 09h10

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