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 6] Définir une webapp par défaut


Sujet :

Tomcat et TomEE Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Points : 36
    Points
    36
    Par défaut [Tomcat 6] Définir une webapp par défaut
    Bonjour,


    Je rencontre un petit problème suite à l'installation d'une application web.

    Mon application fonctionne bien mais je cherche à accéder à un fichier en particulier et c'est la le problème.

    Mon application est accessible sur l'url :
    https://www.monapp.com/

    Mon fichier se trouve dans ma webapps dans:
    webapps/monapp/monfichier.html

    si je tape dans mon navigateur:
    https://www.monapp.com/monapp/monfichier.html
    le contenu de mon fichier apparait bien.

    par contre si je tape:
    https://www.monapp.com/monfichier.html
    je ne parviens pas a afficher le contenu.

    Il s'agit certainement d'un problème de webapps par défaut (je suppose) mais je ne sais pas quel paramètre utiliser et dans quel fichier de conf.

    Je souhaiterais donc définir cette webapp "monapp" par défaut afin d'accéder a mon fichier directement via l'url https://www.monapp.com/monfichier.html

    si quelqu'un a la réponse ?


    Merci d'avance

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Points : 36
    Points
    36
    Par défaut
    I got it

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!-- set webapp by default with default host -->
    <Host name="monurl" appBase="webapps">
    <Context path="" docBase="/path/to/my/webapp"/>
    </Host>

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 160
    Points : 111
    Points
    111
    Par défaut
    Messieurs bonjour,

    Je me posais la même question.
    Effectivement cette solution fonctionne.

    Par contre ça ne marche pas si on utilise un fichier context.xml situé dans le répertoire META-INF/ de l'application (il ne prend pas en compte le docBase). Pourquoi cela ? ça devrait être la même chose, non ?

    Le seul moyen de contourner ce problème c'est de renommer le .war en ROOT.war. Mais je trouve ça un peu nul de devoir renommer le war de son appli.

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 241
    Points : 399
    Points
    399
    Par défaut
    Bonjour,

    en utilisant le context.xml du répertoire META-INF de ta webapp, tu induis le docBase comme étant la valeur du répertoire contenant ce dossier META-INF.

    Personnellement, je préfère définir le contexte des webapps dans le répertoire conf/ de Tomcat.

    Cordialement,
    Sébastien

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 160
    Points : 111
    Points
    111
    Par défaut
    Oui mais le fichier est quand même déployé dans /conf/host/appli.xml
    donc ça me parait bizarre.

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 241
    Points : 399
    Points
    399
    Par défaut
    Bonjour,

    si on se réfère à la documentation de Tomcat 6 concernant les Context, pour pouvoir configurer ton application comme étant celle par défaut de ton VirtualHost, il faut que son fichier de configuration soit nommé ROOT.xml dans le répertoire de configuration.

    Si ton Engine a pour nom "Catalina", et que ton Host est "localhost", alors tu dois disposer ton fichier sous conf/[Catalina]/[localhost]/ROOT.xml

    The default web application may be defined by using a file called ROOT.xml.
    Cordialement,
    Sébastien

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 160
    Points : 111
    Points
    111
    Par défaut
    En effet, mais il faut alors que l'application s'appelle aussi ROOT (enfin le dossier racine contenant l'application). Il faut que le nom du fichier de context corresponde au nom de l'application.

    Par là se pose une question de méthode.
    Pour une application en production, faut-il utiliser un fichier context.xml que l'on défini dans le répertoire META-INF de l'application (comme préconisé par la doc officielle) ou bien mettre directement dans le fichier server.xml le context de notre application.

    La deuxième méthode n'est plus aussi dynamique mais permet plus de chose j'ai l'impression.

    Merci pour vos réponse.

  8. #8
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 241
    Points : 399
    Points
    399
    Par défaut
    Bonsoir,

    non, il n'est pas nécessaire que le WAR ( packagé ou explosé ) se nomme ROOT. L'attribut docBase de la balise Context est là pour ça.

    Si je me base sur la définition de l'attribut deployXml de la balise Host, et si j'en crois la note suivante:
    Security conscious environments should set this to false to prevent applications from interacting with the container's configuration. The administrator will then be responsible for providing an external context configuration file, and put it in $CATALINA_BASE/conf/[enginename]/[hostname]/
    alors j'aurai tendance à:
    1/ Fixer le server.xml en limitant sa modification aux admins système du Tomcat ( un peu comme la gestion du répertoire lib/ pour l'intégration des driver JDBC ).
    2/ Empêcher l'autoDeploy.
    3/ Utiliser des fichiers de contexte dans le répertoire conf/... , car c'est à l'équipe d'admin que je laisserai la décision de configuration finale.

    Oui, je suis parfois un peu borné ;-)

    Cordialement,
    Sébastien

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 160
    Points : 111
    Points
    111
    Par défaut
    non, il n'est pas nécessaire que le WAR ( packagé ou explosé ) se nomme ROOT. L'attribut docBase de la balise Context est là pour ça.
    Ce n'est pris en compte que pour une définition du context directement dans le fichier server.xml.
    Mais pour une définition dans le dossier conf/Catalina/host/appli.xml, l'attribut n'est pas pris en compte.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Points : 36
    Points
    36
    Par défaut
    Merci pour vos réponse, mais je ne parviens toujours pas à faire ce que je vuex

    je reviens donc sur le sujet.

    En effet je n'arrive toujours pas a placer ma webapp par défaut.

    actuellement ma configuration est la suivante:

    conf/server.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <Host name="localhost"  appBase="webapps"
    unpackWARs="false" autoDeploy="false"
    xmlValidation="false" xmlNamespaceAware="false">
    conf/Catalina/localhost/admin.xml.default
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?xml version='1.0' encoding='utf-8'?>
    <Context docBase="admin" path="/admin" workDir="work/Catalina/localhost/admin">
    <ResourceLink name="Locator" global="Locator" type="oracle.jdbc.pool.OracleDataSource" />
    </Context>
    j'ai comme sous domaine pour cette application:

    admin.monurl.fr

    Actuellemement je peux utiliser "http://admin.monurl.fr/admin" qui me renvoie bien sur mon application ce qui prouve qu'elle fonctionne bien, mais j'aimerais y accéder directement via l'url "http://admin.monurl.fr/"

    Pour cela il faut donc que je place mon application par défaut pour tomcat, certes il existe la possibilité de modifier le nom de l'application par ROOT mais cela ne m'interesse pas puisque j'ai pas mal de paramètre déjà configuré en dure dans cette application avec "/admin/"

    est il possible avec tomcat d'ajouter /admin lorsque l'on arrive avec http://admin.monurl.fr afin d'avoir http://admin.monurl.fr/admin comme je pourrais le faire avec une rewrite rule sous apache ?

    ou alors tout simplement faire en sorte de remplacer le fait que tomcat prenne par défaut l'application admin comme il le fait avec l'application ROOT ?

  11. #11
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Points : 36
    Points
    36
    Par défaut
    je viens de modifier mon conf/server.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <Host name="localhost" debug="0" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
       <Context path="/admin" docBase="admin" debug="0"
       reloadable="true" crossContext="true">
          <ResourceLink name="Locator" global="Locator" type="oracle.jdbc.pool.OracleDataSource" />
          <Alias>admin.monurl.fr</Alias>
       </Context>
    </Host>

    j'obtien maintenant une erreur 404 (HTTP Status 404)


    Alors que j'avias une erreur 400 avec l'ancienne configuration ci-dessus.

    J'espère avancer vers la solution

Discussions similaires

  1. [XL-2007] VBA: Définir une valeur par défaut pour un range d'activeX combobox
    Par redhotchilipeppers dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/07/2014, 21h22
  2. Définir une valeur par défaut pour un champ many2one ?
    Par jmbinformatique dans le forum Odoo (ex-OpenERP)
    Réponses: 1
    Dernier message: 14/02/2014, 11h42
  3. [Débutant] Définir une valeur par défaut d'une propriété
    Par Rainui dans le forum VB.NET
    Réponses: 15
    Dernier message: 10/01/2013, 23h58
  4. définir une méthode par défaut
    Par omen999 dans le forum Langage
    Réponses: 6
    Dernier message: 27/11/2009, 19h29

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