Bonjour à tous je commence tout juste a utiliser Struts et je n'arrive pas mettre à jour un fichier xml
en utilisant jdom
Voici mon erreur :
Error 500: (class: sentinelle/configxml/AjoutServerXml, method: ajoutServer signature: ()LFormServeur;) Incompatible argument to method
mon actionForm :
import java.io.File;
import java.io.FileOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import sentinelle.configxml.AjoutServerXml;
import sentinelle.configxml.TestAjoutXml;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.jdom.*;
import org.jdom.input.SAXBuilder;
import org.jdom.output.*;
public class FormActionXml extends Action{
static Element racine;
static org.jdom.Document document;
public ActionForward execute(ActionMapping mapping, ActionForm _form, HttpServletRequest request, HttpServletResponse response) {
ActionForward retour = null;
AjoutServerXml ajoutServerXml = new AjoutServerXml();
try{
if(!formServeur.getUser().equals("")){
ajoutServerXml.buildListeServer();
retour = mapping.findForward("lecture");
}
else{
retour = mapping.findForward("erreur");
}
}
catch (Exception e) {
e.printStackTrace();
//retour = mapping.findForward("erreur");
}
return retour;
}
}
et ma classe pour contruire mon fichier xml :
package sentinelle.configxml;
import java.io.*;
import java.util.ArrayList;
import org.jdom.*;
import org.jdom.input.SAXBuilder;
import org.jdom.output.*;
import FormServeur;
public class AjoutServerXml{
static Element racine;
static org.jdom.Document document;
public FormServeur buildListeServer()
{
//On crée une instance de SAXBuilder
SAXBuilder sxb = new SAXBuilder();
try
{
//On crée un nouveau document JDOM avec en argument le fichier XML
document = sxb.build(new File("D:\\WSAD\\ServerParameterXML.xml"));
}
catch(Exception e)
{
System.out.println("Fichier non trouver : " + e);
}
//On initialise un nouvel élément racine avec l'élément racine du document.
racine = document.getRootElement();
return ajoutServer();
}
public FormServeur ajoutServer()
{
Element requete = new Element("requete");
racine.addContent(requete);
Attribute serveur = new Attribute("serveur",ajoutServer().getServerNom());
requete.setAttribute(serveur);
/*-------------URL---------------------------*/
Element urls = new Element("urls");
Element url = new Element("url");
Attribute adresse = new Attribute("adresse",ajoutServer().getUrlNom());
url.setAttribute(adresse);
url.setText(ajoutServer().getAdresseHttp());
urls.addContent(url);
requete.addContent(urls);
/*-------------database---------------------*/
Element database = new Element("database");
Attribute type = new Attribute("type",ajoutServer().getTypeDatabase());
database.setAttribute(type);
Element driver = new Element("driver");
driver.setText(ajoutServer().getDriver());
database.addContent(driver);
Element adresseServer = new Element("adresse");
adresseServer.setText(ajoutServer().getAdresseServer());
database.addContent(adresseServer);
Element hostname = new Element("hostname");
driver.setText(ajoutServer().getDriver());
database.addContent(hostname);
Element dbname = new Element("dbname");
dbname.setText(ajoutServer().getDbname());
database.addContent(dbname);
Element user = new Element("user");
user.setText(ajoutServer().getUser());
database.addContent(user);
Element login = new Element("login");
login.setText(ajoutServer().getPassword());
database.addContent(login);
Element requetesql = new Element("requetesql");
requetesql.setText(ajoutServer().getRequetesql());
database.addContent(requetesql);
requete.addContent(database);
enregistre("D:\\WSAD\\ServerParameterXML.xml");
return ajoutServer();
}
static void enregistre(String fichier)
{
try
{
XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
sortie.output(document, new FileOutputStream(fichier));
}
catch (java.io.IOException e){}
}
}
Un grand besoin d'aide merci![/code]

