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

Développement Web en Java Discussion :

Page d'administration d'une application web


Sujet :

Développement Web en Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Page d'administration d'une application web
    Bonjour à tous,

    Je suis actuellement en train de développer une simple application en java à l'aide de JSP et de beans principalement. C'est une application web qui sert à créer des site de téléphonie IP pour des CUCM v9.1 et supérieures.

    Je crée mon site à partir de certains paramètres que l'utilisateurs entre dans la "MainPage". Une fois les paramètres entrés, la génération du site se fait automatiquement.

    Mon problème est que j'aimerai bien pouvoir modifier les informations que l'utilisateur peut choisir en MainPage. Typiquement, dans un premier temps un paramètre se trouve être une liste de pays; Belgique, France, Italie. Mais j'aimerai, via une page d'administration, pouvoir rajouter un pays à ma liste. Il est évident que si ce pays est rajouté, il devra réapparaître quand on relance l'application.

    N'étant pas extrêmement à l'aise avec ces technologies, quelqu'un aurait-il une solution à proposer? Ma seule contrainte, pas de base de données pour charger les éventuels paramètres...

    PS: La solution ne doit pas être extrêmement complexe ni "sécurisée", de ce côté là j'utilise les contrôles d'accès de mon serveur Cisco.

    Merci d'avance pour l'intérêt porté à mon problème!

    Gilles.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 173
    Points : 187
    Points
    187
    Par défaut
    Bonjour,
    De ce que je comprend, tu as une liste de pays initiale et tu veux pouvoir en ajouter plus tard sans que cela soit stocké dans une BDD, c'est bien ca?

    Ou stockes-tu ta liste de pays initiale?
    Diplomes: DUT informatique et Master 2 MIAGE.
    Développeur Java/J2EE (principalement), .NET (niveau scolaire mais je compte m'améliorer ) et Web (HTML, PHP...).

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Bonjour et merci de vous pencher sur ma question.

    Oui vous avez bien cerné mon problème.

    J'ai une liste de pays qui s'affiche dans une combobox (<select>), qui est hardcodée. C'est en dur, cette liste n'est donc initialement pas stockée quelque part.
    Il est bien évident que je peux remédier à ce problème!
    Et si je sais charger ma dite liste de pays depuis un fichier, alors je pourrais également rajouter des pays dans cette liste via ma page d'administration.


    Voilà ce à quoi j'ai pensé:

    Un fichier xml (pays.xml) contient une liste de pays. (Pour mon application, un pays contient un nom ainsi qu'un code; Belgique - BEL)
    Ma page principale chargerai cette liste de pays afin de remplir la combobox avec ces éléments.
    Ma page d'administration contient un formulaire pour ajouter et/ou retirer des élément "pays" de la liste.
    Un bouton save sérialiserai la liste dans le fichier pays.xml.



    Cela vous semble-t-il possible?
    J'ai tenté cette solution, je n'arrive cependant pas à trouver le moyen de sérialiser dans mon fichier avec XMLEncoder. Une exception filenotfoundException se lève à chaque fois; accès refusé sur le nom de mon fichier xml créé à la main.
    J'ai pourtant vérifié mes droits, mais je dois bien avouer que je ne sais pas où placer ce fichier xml dans mes répertoires, l'idéal serait biensûr qu'il bouge avec le .war qui sera créé.

    S'il vous faut plus d'éléments, n'hésitez pas à me demander. Mon code peut-être?

    Merci


    PS: Pour mettre en place la sérialisation/désérialisation de ma liste j'ai suivit le tuto du site: http://ydisanto.developpez.com/tutor...ation/partie2/

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 173
    Points : 187
    Points
    187
    Par défaut
    Pour le stockage de la liste dans un fichier xml bien sûr que c'est possible. C'est justement ce que je te voulais te proposer pour stocker la liste car il faut forcément la stocker quelque part donc si ce n'est pas en BDD alors il te faut un fichier.

    J'avais fais un projet avec une base sous forme de fichier xml car ils n'avaient pas les compétences nécessaires pour maintenir une base de données alors qu'ils connaissaient les fichiers xml. Demain soir en rentrant du boulot j'essayerais de te donner des exemples de code (si je ne rentre pas trop tard car en ce moment c'est tendu avec les livraisons à Airbus^^).
    Diplomes: DUT informatique et Master 2 MIAGE.
    Développeur Java/J2EE (principalement), .NET (niveau scolaire mais je compte m'améliorer ) et Web (HTML, PHP...).

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Merci pour l'exemple,

    je vais continuer de chercher l'erreur de mon côté dans la journée.

    Le problème reste à mon avis que je ne sais pas où je dois placer mon fichier XML, soit à a main dans un des répertoire de mon projet, soit via la programmation.

    Merci,

    Gilles.

  6. #6
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 122
    Points : 327
    Points
    327
    Par défaut
    Quelques questions :
    1- Ou est-ce que tu places ton fichier pays.xml?
    2- Comment est-ce que tu accèdes à ce fichier (par chemin absolue ou par chemin relatif)?
    3- Peut-ou voir le bout de code qui pose du problème?


    Mon avis :
    1-Le problème peut être seulement sur le chemin d'accès du fichier pays.xml
    2-L'emplacement du fichier devrait être dans un des répértoires de tes pages web, ce serait plus facile à manipuler.
    3-Il faudrait aussi le créer manuelement depuis le debut mais pas dans le programme pour eviter tout erreur

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Salut!

    Alors, pour répondre à tes questions:
    1- Mon fichier Company.xml (Contient un nom et un code aussi.) est placé comme suit:
    Nom : Capture.PNG
Affichages : 652
Taille : 93,0 Ko

    2 - Je tente d'accéder par chemin relatif, le chemin absolu ne pourrait pas se faire si je veux déplacer mon application il me semble.

    3 - Le code:

    Code : 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
    public void serializeData() throws FileNotFoundException
        {
     
     
            XMLEncoder encoder = new XMLEncoder(new FileOutputStream("../Data/Company.xml")); //Note que j'ai essayé d'autre chaine de caractère en fonction des endroits ou j'ai placé mon fichier xml.
            try {
                //int s = aCompany.size();
                //for(int i=0; i<s; i++)
                //{
                    encoder.writeObject(aCompany);
                    encoder.flush();
                //} 
            } finally {
                        encoder.close();
            }
        }
    Son erreur:
    mai 15, 2014 10:03:44 AM org.apache.catalina.core.StandardWrapperValve invoke
    Grave: Servlet.service() for servlet [jsp] in context with path [/STSIPTELCREATION] threw exception [java.io.FileNotFoundException: Company.xml (Accès refusé)] with root cause
    java.io.FileNotFoundException: Company.xml (Accès refusé)

    > Renvoi à la ligne 60: XMLEncoder encoder = new XMLEncoder(new FileOutputStream("../Data/Company.xml"));

    Ton avis:
    1 - Je pense aussi à un problème de chemin... Essayons de trouver!
    2 - Ayant vue sur la hiérarchie de mes fichiers, penses-tu qu'un dossier "Data" est acceptable? A vrai dire peut m'importe où je placerai le fichier.
    J'ai tenté de le mettre avec mes JSP (même répertoire que MainPage.jsp) et aussi dans le répertoire de mes beans.
    3 - Il a été créé manuellement, il est cependant vide. Peut-être devrais-je rajouter une "directive" en première ligne? (Personnellement je pense qu'elle se mets seule).

    Je continue de chercher aussi, je vais aller voir ce que mon serveur Tomcat me propose comme hiérarchie.

    Merci

  8. #8
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 122
    Points : 327
    Points
    327
    Par défaut
    Je ne suis pas habitué à utilisers JSP, mais j'utilise le plus souvent JSF.
    1-l'emplacement du fichier est bon! (ne le change pas)
    2-le chemin relatif est presque pas acceptable pour un projet Java Web surtout lors d'un couple (Controller-Vue)
    3-il faudrait trouver un moyens pour le chemin absolu
    com pour JSF :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String absloutePath = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/Data/Company.xml");
    XMLEncoder encoder = new XMLEncoder(new FileOutputStream(absloutePath));
    Avec ce code (que je précise que j'ai tester en JSF mais pas en JSP), tu peux toujour l'essayer, on peut avoir le chemin absolu!!!

    Le probleme c'est ce que tu devrait écrire avan ton ""/Data/Company.xml"

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Ca avance!

    Alors voilà, j'ai trouvé similaire pour les JSP;

    Côté jsp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String path = getServletContext().getContextPath();
    System.out.println("Path: " + path); // "/STSIPTELCREATION"
    String absolutepath = getServletConfig().getServletContext().getRealPath("/Data/Company.xml");
    System.out.println("Absolute path: " + absolutepath); //"C:\Users\Gilles\Documents\NetBeansProjects\STSIPTELCREATION\build\web\Data\Company.xml"
    beandata.setAbsolutePath(absolutepath);
    Côté bean:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    XMLEncoder encoder = new XMLEncoder(new FileOutputStream(absolutePath));
            try {
                    encoder.writeObject(aCompany);
                    encoder.flush();
                    encoder.close(); 
     
            } catch(Exception e) {
                    System.out.println("Error xml: " + e.getMessage());
            }
    Le path est bon, je n'ai plus d'exception.

    Le seul problème est que mon fichier xml ne contient, rien...
    J'oublie peut-être une ligne plus qu'importante, je ne sais pas.
    J'essaye de le lire depuis NetBeans après avoir fait un reload du fichier et depuis mes documents, il reste vide.

    Merci!

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Petite rectification:

    - Mon fichier xml contient bien les objets que je lui passe en encodage.
    Je vérifie cela en décodant directement après, un petit affichage me le prouve, aussi bien dans le beanData que dans la jsp.

    Le souci reste que je ne sais pas obtenir mon fichier xml en dehors...

    Un petit save/load manquant j'imagine?

  11. #11
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 122
    Points : 327
    Points
    327
    Par défaut
    Je ne comprends pas!
    Est-ce que tu veux le télécharger ou quelque chose de ce genre? ou l'obtenir en dehors de quoi?

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Et bien j'aimerai qu'il soit enregistré sur mon disque.

    Je sais maintenant remplir mon fichier xml, j'aimerai pouvoir quitter mon application, et lorsque je la relance, j'aimerai pouvoir récupérer les données ajoutées avant.

    Pour le moment:
    1 - J'ouvre mon application, le fichier est vide. Normal.
    2 - Je vais dans l'admin, je rempli mon fichier.
    3 - Je reviens dans la MainPage et j'utilise les données de mon fichier xml rempli une étape plus tôt.
    4 - Je quitte.

    - Quand je relance mon application, les changements que j'avais apporté en point 2 ne sont plus utilisable. Pourquoi ne sont-ils pas enregistrés? Est-ce normal?

    Et quand je parle de l'ouvrir "en dehors", je pense à, une fois que l'application ne tourne pas, ouvrir mon fichier xml dans le bloc note ou autre pour en voir le contenu, l'arborescence créée, et mes éléments stockés. Or mon fichier conserve sa taille de 0 ko.

  13. #13
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 122
    Points : 327
    Points
    327
    Par défaut
    Mon scénario (que j'ai effectuer) :

    1-Je demerre mon application
    2-Je modifie le contenu d'un fichier .xml
    3-Je verifie le contenu, bien modifié avec les changements
    4-Je quite l'application, ferme le navigateur
    5-Je relance mon application, le fichier est encore dans son état (bien modifié avec les changements)
    6-Je restart mon serveur,
    7-je relance l'application, le fichier reste encore dans son état, (bien modifié avec les changements)

    Conculusion :
    Le contenu de mon fichier reste toujours comme l'etat de sa derniere modification en gardants les changements


    Petit remarques :
    1-Deploye ton application sur le serveur. Comme ça ton fichier gardera les changements
    2-A chaque modification, verifie son contenu vi le lien vers ton fichier, par exemple localhost:8080/STSIPTELCREATION/Data/Company.xml

  14. #14
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 122
    Points : 327
    Points
    327
    Par défaut
    A bien y penser
    Quand tu crée le fichier Company XML, ne la laisse pas Vide, écrit au mois ces 2 ou 3 petites choses sinon ce n'est pas un fichier XML VALIDE

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <racine>
    </racine>

    C'est le minimum!!!!

  15. #15
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Me revoilà, désolé j'étais sur la route, enfin, les bouchons.


    Voici, sur le lien localhost:8084/Data/Company.xml, mon fichier Company.xml, qui comme tu me l'as fais remarqué, subit bien toutes les mises à jour que mon application lui impose.

    Remarque: Avant avoir rajouter les deux trois lignes pour rendre le document valide.

    Nom : Capture.PNG
Affichages : 604
Taille : 21,0 Ko

    Ensuite, je retente en ajoutant les dites-lignes;

    Nom : Capture.PNG
Affichages : 591
Taille : 1,8 Ko

    Voilà ce qui sort de ma fenêtre d'output.
    Le résultat sur mon serveur localhost:8084..

    Nom : Capture.PNG
Affichages : 607
Taille : 3,5 Ko

    Je continue de mon côté.

    Par contre, j'ai une question, une chose ne me parait pas claire.
    j'ai du mal à comprendre quand le fichier xml que je place dans les répertoires de mon ordinateur sont déployé vers mon serveur?
    Je vois bien que sur le serveur les changements sont continuels et enregistrés, mais quand je lance mon applic je perds toutes mes données enregistrées dedans.

    Attends, simple bêtise. Je pense que NetBeans redéploie mon application à chaque build, donc presque à chaque fois dans mon cas. Un lien possible? Qu'en dis-tu...?

  16. #16
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Petit remarques :
    1-Deploye ton application sur le serveur. Comme ça ton fichier gardera les changements
    Mon problème de données qui disparaissaient était bien là.

    En effet, NetBeans redéploie l'entièreté du projet lorsqu'une modification qu'il juge "importante" est réalisée dans le code source de l'application, et ce même si l'on ne touche pas aux beans, jsp's et autres qui interagissent avec les fichiers de données XML.

    Merci de votre aide!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/05/2015, 23h21
  2. [SP-2007] La page "Créer ou étendre une application Web" est disparue. Comment l
    Par herge613 dans le forum SharePoint
    Réponses: 1
    Dernier message: 13/05/2013, 08h40
  3. Réponses: 12
    Dernier message: 26/10/2011, 19h16
  4. Réponses: 1
    Dernier message: 01/07/2010, 13h15
  5. Debuggage d'une application WEB-TOMCAT
    Par oziller dans le forum JBuilder
    Réponses: 3
    Dernier message: 07/02/2003, 23h10

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