JasperException: Exception in JSP:
Alors voilà:
J'arrive enfin à passer en page 3 de mon framework:
j'ai une premiere méthode dans ma servet qui utilise un resultset.
Ce même RS est utilisé dans une deuxieme méthode de ma servlet .
Je l'ai donc (le RS) rendu private.
Ce que j'essaye de tester pour le moment c'est de voir si le Rs est bien conservé d'une méthode à l'autre .
En effet, car les requêtes faites dans ma deuxieme méthode ne sont pas réalisées.
Voici la méthode 1dans ma servlet:
Code:
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
|
void doInterrogationFormulaire(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException, SQLException, Exception {
// on récupère les paramètres
String nomCentre = (String) request.getParameter("nomCentre");
String NEtude = (String) request.getParameter("NEtude");
//puis on le stocke dans la session
HttpSession session = request.getSession(true);
session.setAttribute("nomCentre", nomCentre);
session.setAttribute("NEtude", NEtude);
Connexion com = new Connexion();
try{
String queryidPrelevement="SELECT idPrelevement FROM Etabl_Prlvmt where NEtude='"+NEtude+"'";
resultSetIDPrelevement=com.ConnectAndQuestion(queryidPrelevement);
if(resultSetIDPrelevement.next()){
resultSetIDPrelevement.beforeFirst();
request.setAttribute("resultSetIDPrelevement", resultSetIDPrelevement);
getServletContext().getRequestDispatcher((String) params.get("urlReponse")).forward(
request, response);
return;
}
else {
getServletContext().getRequestDispatcher((String) params.get("urlFormulaire")).forward(
request, response);
com.close();
return;
}
}
catch(Exception ex) {
ex.printStackTrace();
System.err.println("\n*** SQLException caught in main()");
getServletContext().getRequestDispatcher((String) params.get("urlFormulaire")).forward(
request, response);
return;
}
} |
Donc le Rs est bien passé (est bien parsé) dans la page réponse 1.
Voici ce qu'il se passe dans ma méthode 2 (appelée à partir de la page réponse 1):
Code:
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
|
void dotestAffichage(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException, SQLException, Exception {
ArrayList<String> listIdPrelevement = null;
Connexion updatePrlvmt= new Connexion();
try{
//serveur,login,pwd,database
updatePrlvmt.loadDriverAndConnect("127.0.0.1","3306","root","root","");
int k=1;
while (resultSetIDPrelevement.next()){
String idPrelevement = resultSetIDPrelevement.getString("idPrelevement");
listIdPrelevement.add(idPrelevement);
if (request.getParameter("choix"+k) !="Vl"){
String champModalite=(String) request.getParameter("modalite"+k);
String champPoss1Exutoire=(String) request.getParameter("Poss1exutoire"+k);
String champPoss2Exutoire=(String) request.getParameter("Poss2exutoire"+k);
String champPoss3Exutoire=(String) request.getParameter("Poss3exutoire"+k);
String champExutoire = null;
if (champPoss2Exutoire!="null" && champPoss3Exutoire!="null"){
champExutoire=champPoss1Exutoire+"+"+champPoss2Exutoire+"+"+champPoss3Exutoire;
}
else if (champPoss2Exutoire!="null" && champPoss3Exutoire.equals("null")){
champExutoire=champPoss1Exutoire+"+"+champPoss2Exutoire;
}
else if (champPoss2Exutoire.equals("null") && champPoss3Exutoire!="null"){
champExutoire=champPoss1Exutoire+"+"+champPoss3Exutoire;
}
else {
champExutoire=champPoss1Exutoire;
}
String queryUpdate="UPDATE PrelevLEG SET Modalite='"+champModalite +
"',Exutoire='"+champExutoire +
"',Temp='null',TempMax='null',Heure='00:00' WHERE idPrelevement='"+idPrelevement +
"';";
updatePrlvmt.execute(queryUpdate);
}
if (request.getParameter("choix"+k) !="Ef"){
String queryUpdate="DELETE FROM PrelevLEG where idPrelevement='"+idPrelevement +"'";
updatePrlvmt.execute(queryUpdate);
}
}
}catch(Exception ex) {
ex.printStackTrace();
System.err.println("\n*** SQLException caught in main()");
}
request.setAttribute("listIdPrelevement",listIdPrelevement);
request.setAttribute("urlAction", (String) params.get("urlControleur"));
getServletContext().getRequestDispatcher((String) params.get("urlReponseBis")).forward(request,
response);
return;
} |
Je me suis dit : "si les requêtes ne sont pas exécutées donc le RS (condition while en rouge) n'est pas transmis ou exporté de manière interne .
Cependant, je ne passe pas dans le catch et la page réponse 2 est bien rendue.
J'ai donc essayé d'afficher mon Rs dans la page 2 or :
Mon RS s'appelle resultSetIDPrelevement et je lui demande donc les idPrelevements
dans le catalina.out:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
*** SQLException caught in main()
org.apache.jasper.JasperException: Exception in JSP: /WEB-INF/JSP/LEG/Prlvmnt/respFichePrlvLEGactual.jsp:30
27: L'actualisation a bien été effectuée :
28:
29: <%
30: while (resultSetIDPrelevement.next()){
31: String idPrelevement = resultSetIDPrelevement.getString("idPrelevement");
32: %>
33: <tr>
Stacktrace:
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) |
J'ai pensé que je m'y suis mal prise. j'ai donc essayé une autre technique:
dans ma deuxieme méthode dans le servlet comme le Rs ne semble pas vide je vais rajouter à chaque tour de boucle mon idPrelevement dans un Arraylist et dans la page réponse 2 j'ai fait un iterator
Là même message d'erreur:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
Connected to : jdbc:mysql://127.0.0.1:3306/BIOTECH
org.apache.jasper.JasperException: Exception in JSP: /WEB-INF/JSP/LEG/Prlvmnt/respFichePrlvLEGactual.jsp:29
26: <tr>
27: L'actualisation a bien été effectuée :
28: </tr>
29: <%Iterator itIDPrelevINreponse=listIdPrelevement.iterator();
30: while(itIDPrelevINreponse.hasNext()){
31: String idPrelevement= (String) itIDPrelevINreponse.next();%>
32:
Stacktrace:
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) |
J'ai de la ressource et de l'entêtement , j'ai surement mal fait mon iterator :
j'ai essayé toutes les astuces possibles mais rien n'y fait j'ai toujours le même "org.apache.jasper.JasperException".
Une idée ? et surtout comment avoir plus de renseignements sur l'erreur qu'un "org.apache.jasper.JasperException: Exception in JSP"
Merci d'avance de votre attention