Problème XML avec JDOM en Java

Résolu
Bonjour,

Je voudrai créer un fichier XML avec JDOM à partir d'une servlet qui appelle une méthode.

J'arrive très bien à créer le fichier XML lorsque le code ce trouve dans un " public static void main (String[] argv) ", mais dès que j'essai de le mettre dans une méthode et de l'appeler cela ne fontionne plus. De mon bloc try{} je passe directement à mon bloc finally{}.

Si je fais ca :

 public static void main (String[] argv) {	
          try{
            Element root = new Element("etudiants");
            Document doc = new Document(root);
            Element node1 = new Element("etudiant");
            node1.setAttribute("prenom","titi" );
            node1.setAttribute("nom", "nomtiti");
            Element node2 = new Element("etudiant");
            node2.setAttribute("prenom","toto" );
            node2.setAttribute("nom", "nomtoto");
 
            root.addContent(node1);
            root.addContent(node2); 
 
            XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
            outputter.output(doc, new FileOutputStream("C:/java/base.xml"));
            
            write( doc, System.out, null );
                        
        }catch (Throwable e) {
            e.printStackTrace();
      }      
    }


cela fontionne.

MAIS si je prend ce meme code est que je le met dans :
public class XMLTransfert {
 public static void CreateXML( String DestinationFolder ) throws Exception
    { ... ICI ...}
}


j'appel " XMLTransfert.CreateXML("/java"); " dans ma servlet avec l'import qui va bien (import XML.XMLTransfert, cela ne fonctionne pas.

Est ce que quelqu'un aurait une idee, ..., ca fait 3 jours que je suis dessus sans résultat.

Merci d'avance
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. Salut,

    1. cela ne fonctionne pas.
    ==> quelle erreur exacte?
    2. Sous quel serveur applicatif essaies-tu d'exécuter (Tomcat, WAS, BEA, etc.) ?

    ++
    1. Je suis sous FireFox avec FireBug, ce dernier me renvoie "Loading ...." par le Response du POST de SendCatalogue
  2. Bonjour,

    1. Tout mon problème est là, j'ai pas d'erreur ... j'ai des blocs try{} catch{} partout et pas un message.

    Ma servlet à cette structure :

    public class SendCatalogue extends HttpServlet {
       
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException, Exception {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            try {
              XMLTransfert.CreateXML("/java");        
            } 
            catch(Exception e){        
               out.print(e.toString());       
            }
            finally { 
                out.close();
            }  
        } 
    //--- Plus les doGet et doPost
    }
    


    Lorsque j'arrive sur la ligne " XMLTransfert.CreateXML("/java"); ", je passe directement dans le bloc " finally " sans même rentrer dedans

    2. Jonas - Apache Tomcat

    Merci
    1. Re,

      J'ai enfin eu un msg d'erreur quand je passe par ma servlet :

      java.lang.NoClassDefFoundError: org/jdom/Content

      C'est bizzare car j'ai pas ce message lorsque je passe par un "main" ...

      pourtant j'ai ajouté les imports " import org.jdom.*; " et même avec " import org.jdom.Content; ", ca fonctionne pas ...
  3. C BON,

    Merci sandul pour ton aide, c'etait un pb de librairie, j'ai recupere un .jar et remplace la librairie que j'avais et c'est bon

    @+
    1. Euh, pas de quoi, je n'ai pas vraiment aidé sur ce coup là... :)