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 :

[J2EE 1.4] mode d'emploi


Sujet :

Struts 1 Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut [J2EE 1.4] mode d'emploi
    Bonjour!

    je bosse avec struts 1.2.8 et je cherche à utiliser les EL. Pour cela, il est visiblement nécessaire d'être en J2EE 1.4...

    Voici ce que je peux vous dire par rapport à cela :
    - J'ai les jar servlet-2.4 et jsp-2.0
    - j'ai enlevé la balise DOCTYPE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd
    de mon web.xml
    - à la place de l'utilisation de cette balise doctype, j'ai mis dans mon web.xml (j'ai ajouté dans la balise web-app)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <web-app 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"
    	version="2.4">
    - à priori la DTD web-app (qu'on voit dans WEB-INF/dtd dans l'arborescence de mon appli) est la web-app 2.3.

    Mais ma question est la suivante :
    Est-ce gênant de mettre tout en 2.4 dans le web.xml alors que en fait, on a la dtd web-app 2.3...? Ca ne risque pas de poser problème?

    De plus, j'ai téléchargé la version 1.3.5 de struts. Et en regardant, la dtd web-app est aussi la 2.3, pas de 2.4 à l'horizon.... c'est normal?

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Ce n'est plus une DTD mais un XSD (XML Schema Document) et il n'est pas utile de l'avoir dans le projet vu que tu y accèdes via l'url suivante :
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd

    Les EL ne fonctionnent toujours pas dans les tags Struts, même en ayant codé la balise web-app suivante dans le web.xml ?
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <web-app 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"
    	version="2.4">
    Dans tes jsp, as-tu codé les directives taglib qui pointent sur les tld de Struts comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    Oui merci pour ta réponse.
    Nous avions constaté que l'ajout de la ligne suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <web-app 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"
    	version="2.4">
    dans notre web.xml permettait de résoudre notre problème.
    Nous nous questionons plus sur le fait que struts est livré avec des web-app.dtd qui s'arrete à la version 2.3 ( nous avons meme récupéré la version struts 1.3.5 pour vérifier et pas de web-app 2.4 xsd).
    sais tu comment struts vérifie de la validité du fichier xml ?
    Merci de ta réponse

  4. #4
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    La validité du web.xml se fait via le XSD web-app_2_4.xsd présent à cette url, soit celle qui est codée dans l'attribut xsi:schemaLocation de la balise web-app.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    Je comprend bien, pourvu que le serveur ait accès à internet, que le fichier xsd spécifié puisse être trouver et servir à la validation de la structure du web.xml.

    Mai sdans le cas où notre serveur n'est pas reliée au net (intranet), comment se fait-il que ce fichier soit trouvé??? Je n'arrive pas trop à voir comment ca marche....

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 15
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Ce n'est plus une DTD mais un XSD (XML Schema Document) et il n'est pas utile de l'avoir dans le projet vu que tu y accèdes via l'url suivante :
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd

    Les EL ne fonctionnent toujours pas dans les tags Struts, même en ayant codé la balise web-app suivante dans le web.xml ?
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <web-app 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"
    	version="2.4">
    Dans tes jsp, as-tu codé les directives taglib qui pointent sur les tld de Struts comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
    Pour utiliser les el dans struts, il faut prendre les taglibs du projet struts-el et pas celles de struts non ?

  7. #7
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Citation Envoyé par AnneB Voir le message
    Je comprend bien, pourvu que le serveur ait accès à internet, que le fichier xsd spécifié puisse être trouver et servir à la validation de la structure du web.xml.

    Mai sdans le cas où notre serveur n'est pas reliée au net (intranet), comment se fait-il que ce fichier soit trouvé??? Je n'arrive pas trop à voir comment ca marche....
    Ben je suppose qu'en copiant le xsd dans un répertoire sous WEB-INF et en modifiant le xsi:schemaLocation en conséquence, ça devrait fonctionner mais j'avoue que je ne l'ai jamais fait.

  8. #8
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Citation Envoyé par aviaur Voir le message
    Pour utiliser les el dans struts, il faut prendre les taglibs du projet struts-el et pas celles de struts non ?
    Seulement si tu es dans une version de J2EE inférieure à la 1.4.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Ben je suppose qu'en copiant le xsd dans un répertoire sous WEB-INF et en modifiant le xsi:schemaLocation en conséquence, ça devrait fonctionner mais j'avoue que je ne l'ai jamais fait.
    Bah le truc louche c que mon serveur n'a pas acces à internet, et pourtant ca marche : sans cela mes EL ne marchent pas mais avec cela, ca marche nickel... Et j'ai eu beau chercher, je n'ai pas trouvé le xsd dans mes fichiers... (et de ttes façons, le chemin spécifié est une url internet)...

  10. #10
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    En fait, web-app_2_4.xsd doit être dans le jar servlet-2.4.

    EDIT : je l'ai trouvé dans servlet-api.jar sous javax.servlet.resources.

  11. #11
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Faut croire que l'URL http://java.sun.com/xml/ns/j2ee doit être une URI.
    Elle doit donc permettre de localiser la xsd web-app_2_4.xsd et pas nécessairement sur Internet mais plutôt dans un jar.

    J'avoue ne pas savoir précisément comment ça fonctionne et c'est d'ailleurs une lacune qu'il faudrait que je comble.

  12. #12
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Suite à cette autre discussion, j'ai fait de nouvelles recherches et j'ai découvert que les serveurs d'application ont une copie des dtd ou xsd, et donc les recherchent d'abord en local, même si on code les url dans les fichiers xml. Ceci explique pourquoi cela fonctionne sans accès à internet.

    Ce que je ne sais pas par contre, c'est si ça s'applique à tous les serveurs d'application.

Discussions similaires

  1. Le grand mode d'emploi du forum, à lire si vous souhaitez tout savoir !
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 03/06/2013, 17h36
  2. [débutante][Concept] Destruction d'objet, mode d'emploi?
    Par skea dans le forum Général Java
    Réponses: 4
    Dernier message: 12/06/2004, 21h48

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