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

Struts 1 Java Discussion :

Appli web sans le web


Sujet :

Struts 1 Java

  1. #1
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 242
    Par défaut Appli web sans le web
    Bonjour,

    Dans une appli struts et dans les différents fichiers XML (fichiers de configuration, taglib...) il y a des références à des DTD à l'aide de lignes de se type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
              "http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">
    L'appli fonctionne très bien sur un PC ayant une connexion internet mais ne démarre pas sur un portable n'ayant pas d'accés internet et cela vient du fait que les DTD ne sont pas trouvées.

    Comment faire alors ?

    Télécharger les DTD pour les inclure au projet fonctionnant avec tomcat et struts ?

    Si oui, où les stocker et comment y faire référence que les fichiers XML ?

    Merci d'avance.

    A+

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour.
    En effet, tu peux télécharger les DTDs et les mettre dans le dossier META-INF de n'importe quel jar. Il faut bien sûr mettre ce jar dans WEB-INF/lib. (je pense que tu peux le mettre dans le META-INF du projet, mais je n'en suis pas sûr)

    RQ: tu peux changer l'URI pour qu'il n'y ait pas d'interférence entre la version locale et celle en ligne.

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Tu dois effectivement les télécharger et les copier dans /WEB-INF/.
    Ensuite, tu modifies le web.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
     <taglib>
      <taglib-uri>/WEB-INF/struts-core</taglib-uri>
      <taglib-location>/WEB-INF/struts-core.tld</taglib-location>
     </taglib>
    ...
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 242
    Par défaut
    Citation Envoyé par Modjo
    Bonjour.
    En effet, tu peux télécharger les DTDs et les mettre dans le dossier META-INF de n'importe quel jar. Il faut bien sûr mettre ce jar dans WEB-INF/lib. (je pense que tu peux le mettre dans le META-INF du projet, mais je n'en suis pas sûr)

    RQ: tu peux changer l'URI pour qu'il n'y ait pas d'interférence entre la version locale et celle en ligne.
    Merci Modjo pour ta réponse.

    Imaginons que je mette les DTD dans /WEB-INF/lib/dtd.jar comment modifier la ligne suivante pour que le DTD local soit trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">
    Aussi dans les tablig il y a aussi des lignes comme celles-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <uri>http://java.sun.com/jstl/core_rt</uri>
    A+

  5. #5
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    A priori, il ne faut soit rien changer (plus simple), soit changer l'URI dans la DTD que tu as mis dans le jar ET dans le struts-config.xml.

    T'as essayé sans rien changer ?
    N'oublis pas de mettre la DTD dans un dossier META-INF dans la racine du jar .

    P.S. : OButterlin : Je ne comprends pas ce que les TLDs et les taglibs ont à voir avec la DTD ?

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Modjo
    P.S. : OButterlin : Je ne comprends pas ce que les TLDs et les taglibs ont à voir avec la DTD ?
    Euh... moi non plus... J'ai lu de travers en faisant 2 choses en même temps...

    Désolé !
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 242
    Par défaut
    Ne vous disputez pas surtout.

    J'ai télécharger le DTD référencé dans le web.xml : je commence par le premier fichier, après je ferai struts et les taglibs.

    Je l'ai mis dans la partie publique du serveur dans le répertoire /dtd.

    J'ai changé la ligne correspondante dans web.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <!DOCTYPE web-app
      PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
      "/dtd/web-app_2_2.dtd">
    ... au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <!DOCTYPE web-app
      PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
      "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
    Et là, rien ne va plus : le lancement de l'appli génère une exception.

    Comment donc référencer cette DTD dans la balise <!DOCTYPE ... > ?

    A+

  8. #8
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 242
    Par défaut
    Autre nouveauté :

    Tomcat semble se moquer que le dtd soit accessible ou non pendant le lancement de l'appli.

    Il reste donc struts et je me demandais s'il est possible d'indiquer à struts d'ignorer les références aux dtd ?

    Sinon, ma question initiale reste malheureusement d'actualité :
    comment indiquer dans le struts-config.xml un path local ?


    Merci pour votre aide.

  9. #9
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour.
    Ce n'est pas une question de chemins, c'est une question d'URIs différent de chemin !
    En chargeant les jar, et pour chaque ressource DTD qu'ils contiennent dans META-INF (je ne comprends pas pourquoi tu refuses de mettre ton DTD dans un META-INF ! ) elle l'associes à l'URI qu'il déclare pour pouvoir le retrouver ensuite.

    Dans ton cas Mister Nono, tu fais ceci :
    1. Tu mets la DTD de Struts dans le dossier webapps/tonAppli/META-INF ou dans WEB-INF/lib/unFicher.jar/META-INF.
    2. C'est tout ! Tu peux optionellement changer l'URI dans la DTD et dans struts config pour qu'il y ait pas de collision entre la version locale et celle en ligne. Par exemple, tu peux utiliser l'URI suivant :
      http://Mister.Nono.dvp/struts-config_1_3.dtdMais n'oublies pas : su tu le changes, fais le dans la déclaration du fichier DTD et dans l'importation dans struts-config.xml l

  10. #10
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 242
    Par défaut
    Citation Envoyé par Modjo
    Bonjour.
    Ce n'est pas une question de chemins, c'est une question d'URIs différent de chemin !
    En chargeant les jar, et pour chaque ressource DTD qu'ils contiennent dans META-INF (je ne comprends pas pourquoi tu refuses de mettre ton DTD dans un META-INF ! ) elle l'associes à l'URI qu'il déclare pour pouvoir le retrouver ensuite.
    Je veux bien essayer ta solution mais le soucis c'est que je ne comprends pas bien ce que tu veux m'expliquer.

    Peux-tu m'indiquer la marche à suivre ?


    Enfin, j'ai essayer de mettre les dtd appelés dans tous les jar (répertoire META-INF) de l'application mais sans succès.

    Au secouuuuuuuuuurrrrrrrrrrrrrrrrrrrsssssssssssssssss.

  11. #11
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 242
    Par défaut
    Et bien, il suffisait d'indiquer la bonne version de dtd pour le DOCTYPE de web.xml pour que cela fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <!DOCTYPE web-app
      PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
      "http://java.sun.com/dtd/web-app_2_3.dtd">
    A+.

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

Discussions similaires

  1. Appli web sans DTO
    Par Nertios dans le forum ALM
    Réponses: 2
    Dernier message: 15/09/2010, 14h18
  2. Du WEB sans serveur WEB?
    Par Thorna dans le forum ASP.NET
    Réponses: 6
    Dernier message: 03/09/2008, 15h33
  3. Faire appel à un serveur web sans interface web
    Par ForceTranquille dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 09/05/2007, 17h48
  4. Réaliser une appli web sans (trop) programmer
    Par Manu751 dans le forum XMLRAD
    Réponses: 3
    Dernier message: 07/09/2006, 23h28
  5. Réponses: 19
    Dernier message: 28/01/2005, 09h52

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