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

Maven Java Discussion :

Fixer le contexte de déploiement d'une application web


Sujet :

Maven Java

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 58
    Points
    58
    Par défaut Fixer le contexte de déploiement d'une application web
    Salut tout le monde ,
    J'ai une application Web et j'ai généré le fichier war avec maven sous la forme : mon-applicaiton-numero-version.war .
    Quand je déploie ce fichier war , je dois utiliser l’url: localhost :8080/mon-applicaiton-numero-version/
    Mais moi au lieu de ça j’aimerai utiliser le context : localhost :8080/mon-applicaiton. Ou un autre nom que je définie moi-même .
    J’espère avoir été claire.
    Merci à vous.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 250
    Points : 403
    Points
    403
    Par défaut
    Tu peux fixer le nom du war généré en configurant le plugin maven-war avec la propriété warName

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 58
    Points
    58
    Par défaut
    J'ai ajouté ces balise dans mon pom.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    </plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
    	<artifactId>maven-war-plugin</artifactId>
    	<version>2.2</version>
    	<configuration>
    		<warName>nom</warName>
    	</configuration>
         </plugin>
    </plugins>
    Mais ça marche toujour pas

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 58
    Points
    58
    Par défaut
    J'ai aussi à la place ajouté ces balises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>tomcat-maven-plugin</artifactId>
            <version>1.0-SNAPSHOT</version>
            <configuration>
                    <path>/mycontext</path>
            </configuration>
    </plugin>
    Mais ça ne donne toujour rien .

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Points : 794
    Points
    794
    Par défaut
    Il s'agit peut-être tout simplement d'un problème de compréhension globale.

    Maven est dans ton cas un constructeur d'archives Web (war).
    Il génère un artefact dont le nom correspond aux standards Maven.
    Cet artefact est ensuite potentiellement mis à disposition auprès de plusieurs utilisateurs à travers un repository Maven. Dans le repository Maven, l'artefact suit les spécificités Maven.

    Tu souhaites ensuite déployer cette archive dans un conteneur Web comme Tomcat.
    Il s'agit alors ici d'une seconde étape, indépendante de la partie construction (build) avec Maven.
    Lors du déploiement, tu déploies l'archive en lui donnant le nom que tu souhaites (il y a donc une phase de renommage entre la construction et le déploiement).
    Concernant le contexte avec Tomcat, par défaut:
    - si tu déploies un artefact mon-applicaiton-numero-version.war, tu as le contexte mon-applicaiton-numero-version
    - et si tu déploies un artefact mon-application.war, tu as le contexte mon-applicaiton
    (PS: Tu peux aussi modification le contexte d'une autre façon mais ne compliquons pas).

    Ensuite, comme dans ton dernier Message, tu peux aussi utiliser Maven comme outil de déploient (en plus de se rôle de construction), et c'est de la configuration du plugin pour personnaliser le PATH.

    Est-ce que cela t'aide? Quel est ton besoin plus précisément?

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 58
    Points
    58
    Par défaut
    J’ai des Client à qui j’aimerai envoyer un fichier war avec le numéro de version, mais je veut que lors du lancement de l’application il garde la même URL .Donc pour moi l’idéal c’est d’avoir le numéro de version dans le nom du fichier war , mais uniquement le nom de l’application sans le nom de version dans mon TOMCAT .
    C’est ce que semblaient faire les balises que j’ai ajouté tout à l’heur , d’après ce poste :
    http://stackoverflow.com/questions/2...xt-in-war-file
    Mais apparemment ça ne marche pas.

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tu dois créer dans ton .war un fichier META-INF/context.xml qui reprendra la configuration spéficique à tomcat. On y trouvera les datasources, les rôles à mapper et aussi le nom du contexte.

    un exemple d'un fichier ici avec pas mal de config tomcat dedans (comme des valves, l'authentification, etc):
    Code xml : 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 crossContext="true" reloadable="true" path="/intranet">
    <Valve className="org.apache.catalina.authenticator.BasicAuthenticator"  disableProxyCaching="false" />
     
       <Realm className="com.company.JNDIRealm" debug="99"
            connectionURL="ldaps://ldap.company.com:636"
            userPattern="uid={0},ou=Persons,ou=People,dc=company,dc=com"
            roleBase="ou=Group,ou=Intranet,dc=company,dc=com" roleName="cn"
            roleSearch="(memberUid={1})" userRoleName="uid"/>
     
    	<Resource name="jdbc/requestScopeDS" type="javax.sql.DataSource"
    		password="****" driverClassName="oracle.jdbc.driver.OracleDriver"
    		maxIdle="4" maxWait="5000" username="*****"
    		url="****" maxActive="4"
    		validationQuery="select * from dual" initialSize="1"
    		poolPreparedStatements="true"
    		defaultTransactionIsolation="READ_COMMITTED" removeAbandoned="true"
            removeAbandonedTimeout="60" logAbandoned="true" />
     
    </Context>

  8. #8
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Points : 794
    Points
    794
    Par défaut
    Attention, cette solution ne marche qu'avec Tomcat.
    Elle n'a donc qu'un sens dans le cas ou on maitrise ceux qui vont exploiter les war car ils devront obligatoirement utiliser Tomcat.

    Il s'agit en fait d'une donnée d'infrastructure qu'on met rarement dans les archives finales.
    C'est en général uniquement utilisée en developement.

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Si tu prend une application largement distribuée, comme jira, tu verra que leur war est distribuer avec des fichiers de cnfig déjà prêts pour tomcat, jboss, websphere et je pense aussi glassfish Pour moi ce n'est pas si rare que ça de la mettre
    -> ça évite les urls à rallonge
    -> si un client lambda veux changer l'url il a déjà le fichier à disposition, suffit d'aller y changer la valeur.

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 58
    Points
    58
    Par défaut
    Dons mon cas mes clients utilisent tous TOMCAT.
    J'ai crée dans le répertoire META-INF, le fichier context.xml avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?xml version="1.0" encoding="UTF-8"?>
    <Context  path="/mycontext" />
    Mais ça ne donne toujours rien.

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    il est bien à la racine dans le war généré (et pas dans WEB-INF/classes/META-INF) ?

  12. #12
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 58
    Points
    58
    Par défaut
    il est dans le web/META-INF et dans le war il est dans le META-INF

  13. #13
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 250
    Points : 403
    Points
    403
    Par défaut
    Ben normalement si le fichier context.xml est dans WEB-INF, cela devrait fonctionner.

  14. #14
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 58
    Points
    58
    Par défaut
    Je crois que je vais me contenter de lui envoyer le répertoire de l’application déployer , vue que cette solution ne marche pas ,et que même si j’y arrive il y a un second soucis c’est que TOMCAT ne me permet pas de déployer un fichier war avec le même nom d’un war déjà déployer .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FAIL - War file "Versioning-1.0.18.war" already exists on server

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/10/2009, 11h53
  2. Réponses: 3
    Dernier message: 02/07/2008, 22h04
  3. déploiement d'une application web (J2EE) dans le serveur
    Par opensource dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 05/07/2007, 10h37
  4. Réponses: 3
    Dernier message: 16/06/2007, 00h57
  5. déploiement d'une application web
    Par edzodzinam dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 29/09/2006, 09h37

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