Bonjour à tous,
Suite de ce post.
Mon problème est que je ne sais pas si mon problème vient réellement de l'utilisation de FormFile ou de JXyDiff !![]()
struts-config.xml
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd"> <struts-config> <form-beans> [...] <form-bean name="formChoixFdm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="urlFdm" type="org.apache.struts.upload.FormFile"/> <form-property name="urlFdm2" type="org.apache.struts.upload.FormFile"/> </form-bean> </form-beans> <action-mappings> [...] <action name="formChoixFdm" path="/FormCompareFdm" scope="request" validate="true" input="/compareFdm.do" forward="com.mycompany.myproject.CompareFdmAction" > <!-- <forward name="succes" path="/vues/resComparaison.jsp"/> --> <forward name="succes" path="/vues/compareFdm.jsp"/> <forward name="echec" path="/vues/compareFdm.jsp"/> </action> </action-mappings> <message-resources parameter="com.mycompany.myproject.padRessources"/> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /> <set-property property="stopOnFirstError" value="false"/> </plug-in> </struts-config>Form
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 package com.mycompany.myproject; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.upload.FormFile; public class CompareFdmForm extends ActionForm { // URL du FDM n°1 private FormFile urlFdm = null; // URL du FDM n°2 private FormFile urlFdm2 = null; public FormFile getUrlFdm() { return urlFdm; } public void setUrlFdm(FormFile urlFdm) { this.urlFdm = urlFdm; } public FormFile getUrlFdm2() { return urlFdm2; } public void setUrlFdm2(FormFile urlFdm2) { this.urlFdm2 = urlFdm2; } /* * WARNING: In order to correctly recognize uploaded files, * the ActionForm bean associated with this form * must include a statement setting * the corresponding org.apache.struts.upload.FormFile * property to null in the reset() method. */ public void reset(ActionMapping arg0, HttpServletRequest arg1) { // TODO Auto-generated method stub super.reset(arg0, arg1); setUrlFdm(null); setUrlFdm2(null); } // Validation /*public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { // Gestion des erreurs ActionErrors erreurs = new ActionErrors(); // Le chemin du 1er FDM doit être non vide if (getUrlFdm() == null || getUrlFdm() == "") { erreurs.add("urlFdmVide", new ActionMessage("error.urlFdm.vide")); } // Le chemin du 2ème FDM doit être non vide if (getUrlFdm2() == null || getUrlFdm2() == "") { erreurs.add("urlFdm2Vide", new ActionMessage("error.urlFdm2.vide")); } return erreurs; }*/ }Action
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 package com.mycompany.myproject; import java.io.IOException; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; 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 fr.loria.ecoo.so6.xml.node.Document; import fr.loria.ecoo.so6.xml.xydiff.DeltaConstructor; import fr.loria.ecoo.so6.xml.xydiff.XyDiff; public class CompareFdmAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException, SQLException { // Lieu de stockage des delta.xml String cheminSauvegarde = "D:/delta.xml"; // Liaison avec le Form associé CompareFdmForm formChoixFdm = (CompareFdmForm)form; XyDiff xydiff; try { xydiff = new XyDiff(formChoixFdm.getUrlFdm().toString(), formChoixFdm.getUrlFdm2().toString()); DeltaConstructor delta = xydiff.diff(); Document doc = delta.getDeltaDocument(); doc.save(cheminSauvegarde); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return mapping.findForward("succes"); } }
JSP
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html" %> <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link rel="stylesheet" href="style/default.css" type="text/css" /> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <title>BLABLA- Accueil</title> <html:javascript formName="formChoixFdm" dynamicJavascript="true" staticJavascript="true" /> </head> <body> <div class="menuGaucheBarre"></div> <div class="menuGauche"> <div class="logoMenu"></div> <br /> <div class="ident"> <div class="titreListe">Identification</div> </div> <br /> <div class="listeContenu"> <div class="titreListe">Navigator</div> <ul class="menu"> <li class="menu"> <a href="index.jsp">Accueil</a></li> <li class="menu"> <a href="choixMachine.do">Afficher une machine</a></li> <li class="menu"> <a href="compareFdm.do">Comparer 2 FDM</a></li> </ul> </div> </div> <div class="conteneur"> <h1>Interface de consultation blabla</h1> <hr /> <html:form action="/FormCompareFdm" method="POST" enctype="multipart/form-data" focus="urlFdm" onsubmit="return validateFormChoixFdm(this);"> <table> <tr> <th colspan="2">Comparer deux FDMs</th> </tr> <tr> <td class="ss-titre">FDM n°1 :</td> <td class="txt"><html:file property="urlFdm" size="50" /><html:errors property="urlFdm" /></td> </tr> <tr> <td class="ss-titre">FDM n°2 :</td> <td class="txt"><html:file property="urlFdm2" size="50" /><html:errors property="urlFdm2" /></td> </tr> <tr> <td colspan="2" align="right"><html:submit styleClass="bouton" value="Comparer" /></td> </tr> </table> </html:form> <br /> </div> </body> </html>Erreur :
Etat HTTP 500 -
--------------------------------------------------------------------------------
type Rapport d'exception
message
description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
exception
javax.servlet.ServletException: Le chemin com.mycompany.myproject.CompareFdmAction ne commence pas par le caractère "/"
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
cause mère
java.lang.IllegalArgumentException: Le chemin com.mycompany.myproject.CompareFdmAction ne commence pas par le caractère "/"
org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:107)
org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/5.5.23.
--------------------------------------------------------------------------------
Apache Tomcat/5.5.23
Partager