[Servlet JAVA]Editer son web.xml

Discussion dans 'Web, design' créé par Jereck, 27 Mai 2008.

Statut de la discussion:
Fermée.
  1. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    Voilà, j'ai une application sous la forme d'une Servlet JAVA (serveur Tomcat).

    Cette servlet a besoin de 3 paramètres (IP, Login, Pass) pour fonctionner.

    Actuellement, je vérifie dans ma config (donc, les paramètres chargés via le web.xml au démarrage de l'application). S'il n'y a pas de paramètre dans le web.xml, je redirige sur une page avec un formulaire et l'utilisateur est prié de les rentrer manuellement.

    Une fois rentrés à la main, les paramètres vont "survivre" aussi longtemps que la servlet.

    Mais si on relance le serveur (ou que la servlet a été déchargée), ces paramètres sont perdus.

    Est-il donc possible pour une servlet de complèter elle-même son propre web.xml une fois les paramètres rentrés à la main pour pouvoir les récupérer lors du prochain chargement ?

    (Lors du déploiement, l'IP et le Login/Pass seront différent d'une implantation à l'autre, on ne peut donc pas envisager de les mettre directement dans le web.xml / fichier WAR).
    Jereck, 27 Mai 2008
    #1
  2. Offline
    ozilrit Touriste
    En somme, tu souhaites que l'étât de la servlet soit persistant ?
    ozilrit, 27 Mai 2008
    #2
  3. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    ouais

    donc, que, serveur redéarré, il garde les paramètres.

    Pas de serveur DB présent non plus, oublié de le dire.

    J'avais pensé à modifier le web.xml pour la simplicité de la lecture.

    Sinon, au pire, je fais un "module" de gestion d'un fichier de config, mais s'il y a plus simple, c'est mieux.
    Jereck, 27 Mai 2008
    #3
  4. Offline
    eGm_ Guinea Trump
    edit : j'ai rien dit.
    eGm_, 27 Mai 2008
    #4
  5. Offline
    ozilrit Touriste
    Sérialiser avant la destruction de la servlet ?
    ozilrit, 27 Mai 2008
    #5
  6. Offline
    Tifox ou pas
    Je ne pense pas qu'on puisse éditer le web.xml (et ça me parait foireux comme idée si c'est autorisé).

    Si ça doit survivre a un restart/crash serveur, tu n'as pas de choix que de passer par des données persistante, donc soit DB (que tu n'as pas), soit fichier directement (mais faut pouvoir écrire sur le disque).

    Il y a peut-être d'autres solutions, mais c'est la seule qui me vient en tête (sans beaucoup réfléchir il est vrai).
    Tifox, 27 Mai 2008
    #6
  7. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    Si il faut faire un "module" "chargement/sauvegarde" des paramètres, ouais, je trouverai bien, mais je me demandais s'il n'y avait pas un moyen de ne faire que la partie "sauvegarde" et laisser Tomcat se charger du chargement. Et donc, sauvegarder dans le web.xml même.
    Jereck, 27 Mai 2008
    #7
  8. Offline
    Tifox ou pas
    Je ne pense pas.

    Nous (on utilise JBoss qui est basé sur tomcat), pour ce genre de chose, on utilise soit la DB, soit des fichier sur le disque.
    Tifox, 28 Mai 2008
    #8
  9. Offline
    eGm_ Guinea Trump
    tu fais du struts ou du j2ee ?
    eGm_, 28 Mai 2008
    #9
  10. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    J'ai du aller sur Wikipedia pour savoir ce que c'est Struts, donc, non, juste J2EE
    Jereck, 28 Mai 2008
    #10
  11. Offline
    ozilrit Touriste
    Alors soit j'ai rien compris, soit c'est tout con, soit y a un problème d'arch.
    ozilrit, 28 Mai 2008
    #11
  12. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    Pour ceux que ça intéresserait, j'ai pas trouvé comment modifer le web.xml, mais on m'a renseigné sur la classe java.util.Properties qui offre très facilement la possibilité de créer et de relire des fichiers de config.
    Jereck, 2 Juin 2008
    #12
  13. Offline
    ozilrit Touriste
    Si tu veux éviter les fichiers, tu peux même regarder à java.util.Preferences.

    The java.util.prefs package provides a way for applications to store and retrieve user and system preference and configuration data. The data is stored persistently in an implementation-dependent backing store. There are two separate trees of preference nodes, one for user preferences and one for system preferences.
    ozilrit, 2 Juin 2008
    #13
  14. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    C'est une classe abstraite ça, le moyen de stocker les infos dépend de l'implémentation, donc, DB, fichier, etc...

    Mais sinon, la classe Properties marche nikel
    Jereck, 2 Juin 2008
    #14
  15. Offline
    ozilrit Touriste
    *bored, i'm out* :pfiou:
    ozilrit, 2 Juin 2008
    #15
  16. Offline
    gl0b ▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇
    vais noter ta solution mais si tu veux le faire à la main il faut modifier le web.xml et copier dans le répertoire classes de WEB-INF les .class

    Voilà ce qu'il faut ajouter dans ton web.xml pour déclarer les .class

    <servlet>
    <servlet-name>TEST</servlet-name> //nom symbolique du servlet
    <servlet-class>classeTest</servlet-class> //nom de la classe
    </servlet>

    <servlet-mapping>
    <servlet-name>TEST</servlet-name> //idem
    <url-pattern>/classeTest</url-pattern> //url pour t'adresser à la classe si jamais elle contient un main (pas sûr)
    </servlet-mapping>

    voilà :-D
    gl0b, 5 Juin 2008
    #16
  17. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    Oui, mais ça n'a rien à voir avec ce que je demande :D

    et non, elle ne doit pas contenir un "main" mais les méthodes "doGet" et "doPost" (enfin, pour bien faire) si elle dérive de HttpServlet. Si elle dérive de Servlet, ce sont d'autres méthodes à implémenter, mais le principe estle même : une méthode Init() qui sert de contructeur et une/des méthodes pour gérer les requètes envoyées par le(s) client(s).
    Jereck, 5 Juin 2008
    #17
  18. Offline
    gl0b ▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁ ▅ ▃ ▅ ▅ ▄ ▅ ▇
    ok mal lu ton problème, j'avais oublié l'histoire du doGet & doPost >_< merci
    gl0b, 5 Juin 2008
    #18
Statut de la discussion:
Fermée.