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]