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

Spring Java Discussion :

La classe contraire du XmlBeanFactory [Framework]


Sujet :

Spring Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 141
    Points : 178
    Points
    178
    Par défaut La classe contraire du XmlBeanFactory
    Bonjour,
    en je suis à la recherche d'une class qui fait le contraire de ce que fait la class XmlBeanFactory avec sa methode getBean("id_Bean"), c'est à dire une class spring qui me permet d'ajouter un nouveau bean ou de modifier un bean à l'intérieur du fichier spring-config.xml?
    Si cela n'est pas possible existe t-il une méthode à l'aide de SAX ou JDOM qui permet de modifier les éléments d'un fichier xml ou même d'ajouter un bean (ou d'écrire) en fin d'un fichier xml?
    Merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    c'est à dire une class spring qui me permet d'ajouter un nouveau bean ou de modifier un bean à l'intérieur du fichier spring-config.xml?
    Programmatiquement, tu peux modifier l'état d'un bean initialisé par Spring, changer ses dépendances par exemples.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MaClasse maClasse = (MaClasse) beanFactory.getBean("monBean");
    maClasse.setPropriete(new AutreClasse());
    Maintenant, ajouter un nouveau bean, on ne peut pas et j'en suis pas mécontent.
    Ca créerait trop de bugs dû à des erreurs pas facilement vérifiables puisqu'on aura pas une vision fixe des beans de notre appli.

    Si cela n'est pas possible existe t-il une méthode à l'aide de SAX ou JDOM qui permet de modifier les éléments d'un fichier xml ou même d'ajouter un bean (ou d'écrire) en fin d'un fichier xml?
    Rien ne t'empêche de modifier un fichier xml à l'éxécution : jdom ferait très bien l'affaire.
    Maintenant si ton contexte Spring a déja été chargé avec le fichier avant l'opération de modification, tu vas être assez embêté puisque t'auras deux versions de conf des beans, dont une déja chargée.
    Si ton contexte n'a pas été encore chargé, c'est mieux mais le debuggage des erreurs liées à la conf de tes beans spring sera un peu plus compliquée qu'avec des déclarations de beans faites à l'éxécution.

    Eclaire nous plus sur ton besoin, il existe peut-être une solution plus adéquate.
    Ils flottent tous en bas

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 141
    Points : 178
    Points
    178
    Par défaut
    Salut et merci pour ta réponse je vais essayer ta méthode pour voir ce que ca donne...
    Bon je t'explique mon besoin:
    Je dispose d'un formulaire je veux qu'une fois que l'utilisateur envoie les données qu'un objet enregistre le bean correspondant aux données dans le spring-config.xml qui sera appelé plus tard en cas de besoin par XmlBeanFactory...
    -->Ce qui me dérange c'est juste comment trouver cet obejt capable d'écrire un bean ou de créer un bean automatiquement dans le spring-config.xml.
    -->Le Problème avec JDOM c'est qu'il peux me créer cet objet.j'ai écrit l'objet et toutes ces méthodes mais l'entête du fichier xml crée ne m'affiche pas le DTD qui permettra au XmlBeanFactory d'aller chercher le bean donc ca marche pas.En fait XmlBeanFactory ne reconnait pas le fichier comme étant un fichier de configuration de spring...(s'il existe une méthode JDOM pour définir l'entête du fichier xml à créer ca m'arrangera aussi).
    Bon j'espère que j'ai été un peu plus clair sur ce coup merci.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Salut,

    Je dispose d'un formulaire je veux qu'une fois que l'utilisateur envoie les données qu'un objet enregistre le bean correspondant aux données dans le spring-config.xml qui sera appelé plus tard en cas de besoin par XmlBeanFactory...
    A partir du moment ou ton fichier de conf Spring n'est pas encore chargé, la démarche est bonne.

    Le Problème avec JDOM c'est qu'il peux me créer cet objet.j'ai écrit l'objet et toutes ces méthodes mais l'entête du fichier xml crée ne m'affiche pas le DTD qui permettra au XmlBeanFactory d'aller chercher le bean donc ca marche pas.En fait XmlBeanFactory ne reconnait pas le fichier comme étant un fichier de configuration de spring..
    Je vois pas pourquoi il te parle de dtd. Tu as besoin que des espaces de noms dans le xml.
    Pour comprendre ou est le prob, montre le xml que te génère JDOM et le message d'erreur exact que tu as lorsque tu le charges avec ta BeanFactory.
    Ils flottent tous en bas

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 141
    Points : 178
    Points
    178
    Par défaut
    Merci pour ta réponse
    thebloodyman
    finalement j'ai trouvé la réponse à mon problème il exite pas d'objet qui permet de mapper un bean dans le spring.xml donc la réponse se trouvait bien évidement du coté de l'API DOM.Et ce qui manquait dans mon code de fabrique DOM pour fichier xml c'était la fameuse classe Transformer du package javax.xml.transform qui permet de définir l'en-tête du fichier xml enfiin le DOCTYPE(public...) pour définir le DTD à respecter par le fichier xml dans mon cas c'est de préciser le DOCTYPE pour le spring-config.xml ce qui permettra à la classe XmlBeanFactory d'aller chercher le bean sans cela rien n'était possible XmlBeanFactory ne peut pas reconnaitre le fichier xml comme étant un fichier de configuartion pour spring.
    Encore une fois merci.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 141
    Points : 178
    Points
    178
    Par défaut
    Je reviens sur mon lessage pour mieux expliquer ce qui manquait à mon code de frabrique DOM pour les fichier xml.

    Il fallait juste écrire cela à la fin de mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
          Transformer t=TransformerFactory.newInstance().newTransformer();
           t.setOutputProperty(outputKeys.DOCTYPE-SYSTEM,"chemin_du_DTD.dtd");
          t.setOutputProperty(outputKeys.DOCTYPE-PUBLIC,"chemin");
          t.transform(new DOMSource(document,new StreamResult(new FileOutputStream(spring.xml)));
    //ou document est du type Dcument et mon fichier de sortie spring.xml et le tour est joué
    Donc sans ce bout code nécéssairement au moment où j'allais faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlbeanfacorty.getBeant(user)
    ca allait déclenché une excepion pour le chemin du dtd.

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

Discussions similaires

  1. Classe pour la création d'un graphe xy
    Par Bob dans le forum MFC
    Réponses: 24
    Dernier message: 03/12/2009, 17h20
  2. Réponses: 31
    Dernier message: 30/03/2006, 16h57
  3. Variable d'une Classe Ancêtre
    Par Génie dans le forum Langage
    Réponses: 3
    Dernier message: 18/09/2002, 19h24
  4. Contraire de NIL
    Par PierDIDI dans le forum Langage
    Réponses: 5
    Dernier message: 16/09/2002, 12h14
  5. Sortir un typedef d'une classe
    Par Theophil dans le forum C++Builder
    Réponses: 13
    Dernier message: 03/07/2002, 17h21

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