ouilibona
Messages postés9Date d'inscriptionvendredi 29 août 2014StatutMembreDernière intervention 7 décembre 2014
-
Modifié par KX le 29/08/2014 à 21:33
ouilibona
Messages postés9Date d'inscriptionvendredi 29 août 2014StatutMembreDernière intervention 7 décembre 2014
-
2 sept. 2014 à 19:59
bonjour les amis j ai un serieux probleme sur mon projet de JEE, j'ai créer une page JSP je veux a ce que cette page la fait l'ajout et la modification . l'ajout marche mais si je veux fait la modification il me revoi un message d'erreu voici le message
type Rapport d''exception
message
description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête.
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.42.
et voici le code
EtudiantDao
KX
Messages postés16755Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention12 février 20253 020 29 août 2014 à 21:36
Bonjour,
Comme indiqué dans le message d'erreur tu as un NullPointerException sur la ligne 32 :
preparedStatement.setDate(6, new java.sql.Date(etudiant.getDatenaiss().getTime()));
Il faut donc regarder, si
etudiant==null
ou si
etudiant.getDatenaiss()
...
ouilibona
Messages postés9Date d'inscriptionvendredi 29 août 2014StatutMembreDernière intervention 7 décembre 2014 30 août 2014 à 17:08
Bonjour merci pour ton aide, mais la ligne ke vous me demande de regarder j ai essayer mais sa ne marche pas, je repete ma kestion je veux faire l ajout et la modification sur la meme page jsp en ce moment l ajout marche bien, et l affichage et la suppression aussi mais lorsque. Je veux faire la modification il me renvoi. Cet message d eurreur s il vous plait aide moi
KX
Messages postés16755Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention12 février 20253 020 30 août 2014 à 17:43
Déjà est-ce que la ligne 32 indiqué dans la trace de l'exception correspond bien à la ligne 32 dans le code que tu as copier/coller ? Si c'est bien celle que j'ai repris ci-dessus il n'y a pas foules de solutions possibles pour avoir un NullPointerException...
parce qu''avant tu as eu une ParseException ! Tu pourrais aller voir dans la log du serveur où s'est affiché le
e.printStackTrace();
ou alors faire remonter l'erreur au client avec un
throw new RuntimeException("can't set datenaiss",e);
mais clairement tu ne devrais jamais continuer tes opérations sans la date de naissance de l'étudiant !
String paramDateNaiss = request.getParameter("datenaiss");
String format = "dd/MM/yyyy";
try
{
Date datenaiss = new SimpleDateFormat(format).parse(paramDateNaiss);
etudiant.setDatenaiss(datenaiss);
}
catch (Exception e)
{
throw new IllegalFormatException("param datenaiss="+paramDateNaiss+" is not a valid '"+format+" ' date", e);
}
if (idetudiant == null || idetudiant.isEmpty())
dao.addEtudiant(etudiant);
Normalement, tu ne devrais plus avoir de NullPointerException dans la méthode addEtudiant, mais une IllegalFormatException dans ta méthode doPost. Il faudra alors voir ce qu'elle dit pour comprendre le problème.
ouilibona
Messages postés9Date d'inscriptionvendredi 29 août 2014StatutMembreDernière intervention 7 décembre 2014 31 août 2014 à 21:04
Bonsoir merci pour votre disponibilité de m'avaoir aider sur mon probleme, en fait le code que vous m'avez envoyez j 'ai essayer mais il me deonne des erreur et illegalformatEexception ne march pas sur mon eclipse
voici le message d'erreur et le code que vous ,puis j'ai essayer a la place illegalformatException j ai mis IllegalArgumentException mai sa donné l'erreur
type Rapport d''exception
message param datenaiss=2001-05-05 is not a valid 'yyyy/MM/dd ' date
description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête
voici le code qui ne marche pas toujours
String paramDateNaiss=request.getParameter("datenaiss");
String format="yyyy/MM/dd";
try {
Date datenaiss= new SimpleDateFormat(format).parse(paramDateNaiss);
etudiant.setDatenaiss(datenaiss);
} catch (Exception e) {
throw new IllegalFormatException("param datenaiss="+paramDateNaiss+" is not a valid '"+format+" ' date", e);
java.lang.IllegalArgumentException: param datenaiss=2001-05-05 is not a valid 'yyyy/MM/dd ' date
com.etud.controller.EtudiantController.doPost(EtudiantController.java:72)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.42.
merci pour votre disponibilité
KX
Messages postés16755Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention12 février 20253 020 31 août 2014 à 21:12
illegalformatEexception ne march pas sur mon eclipse Ce n'est pas grave IllegalArgumentException c'est bien aussi (c'est sa classe mère) l'important c'est d'avoir le message de l'exception : param datenaiss=2001-05-05 is not a valid 'yyyy/MM/dd ' date
Comme écrit noir sur blanc, la date de naissance est séparée avec des tirets "2001-05-05" alors que tu essayes de parser avec des slashs "yyyy/MM/dd".
Donc soit tu changes l'un, soit tu changes l'autre, mais il faut être cohérent.
ouilibona
Messages postés9Date d'inscriptionvendredi 29 août 2014StatutMembreDernière intervention 7 décembre 2014 31 août 2014 à 22:06
merci pour votre aide y'a aucune message d'erreur maintenant quant je veux modifier la ligne , il ajoute la ligne au lieu de modifier , je repete j'ai une seul page jsp je veux faire l'ajout et la modification sur la meme page jsp merci
voici le code
EtudiantController
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Etudiant etudiant = new Etudiant();
etudiant.setNom(request.getParameter("nom"));
etudiant.setPrenom(request.getParameter("prenom"));
etudiant.setAdresse(request.getParameter("adresse"));
etudiant.setTelephone(request.getParameter("telephone"));
etudiant.setEmail(request.getParameter("email"));
String idetudiant = request.getParameter("idetudiant");
String paramDateNaiss=request.getParameter("datenaiss");
String format="yyyy-MM-dd";
try {
Date datenaiss= new SimpleDateFormat(format).parse(paramDateNaiss);
etudiant.setDatenaiss(datenaiss);
} catch (Exception e) {
throw new IllegalArgumentException("param datenaiss="+paramDateNaiss+" is not a valid '"+format+" ' date", e);
30 août 2014 à 17:08
30 août 2014 à 17:43
1) preparedStatement==null
2) etudiant==null
3) etudiant.getDatenaiss()==null
Les cas 1 et 2 sont impossibles car sinon l'erreur aurait eu lieu sur les lignes de codes avant, il ne reste donc qu'une possibilité : la 3.
Quand on regarde plus attentivement ton code on a ça :
Si tu as dans la méthode cela signifie que tu n'as jamais fait parce qu''avant tu as eu une ParseException ! Tu pourrais aller voir dans la log du serveur où s'est affiché le ou alors faire remonter l'erreur au client avec un mais clairement tu ne devrais jamais continuer tes opérations sans la date de naissance de l'étudiant !
Normalement, tu ne devrais plus avoir de NullPointerException dans la méthode addEtudiant, mais une IllegalFormatException dans ta méthode doPost. Il faudra alors voir ce qu'elle dit pour comprendre le problème.
31 août 2014 à 21:04
voici le message d'erreur et le code que vous ,puis j'ai essayer a la place illegalformatException j ai mis IllegalArgumentException mai sa donné l'erreur
type Rapport d''exception
message param datenaiss=2001-05-05 is not a valid 'yyyy/MM/dd ' date
description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête
voici le code qui ne marche pas toujours
String paramDateNaiss=request.getParameter("datenaiss");
String format="yyyy/MM/dd";
try {
Date datenaiss= new SimpleDateFormat(format).parse(paramDateNaiss);
etudiant.setDatenaiss(datenaiss);
} catch (Exception e) {
throw new IllegalFormatException("param datenaiss="+paramDateNaiss+" is not a valid '"+format+" ' date", e);
}
if(idetudiant == null || idetudiant.isEmpty())
{
dao.addEtudiant(etudiant);
}
else
{
etudiant.setIdetudiant(Integer.parseInt(idetudiant));
dao.updateEtudiant(etudiant);
}
exception
java.lang.IllegalArgumentException: param datenaiss=2001-05-05 is not a valid 'yyyy/MM/dd ' date
com.etud.controller.EtudiantController.doPost(EtudiantController.java:72)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
cause mère
java.text.ParseException: Unparseable date: "2001-05-05"
java.text.DateFormat.parse(Unknown Source)
com.etud.controller.EtudiantController.doPost(EtudiantController.java:69)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.42.
merci pour votre disponibilité
31 août 2014 à 21:12
Ce n'est pas grave IllegalArgumentException c'est bien aussi (c'est sa classe mère) l'important c'est d'avoir le message de l'exception : param datenaiss=2001-05-05 is not a valid 'yyyy/MM/dd ' date
Comme écrit noir sur blanc, la date de naissance est séparée avec des tirets "2001-05-05" alors que tu essayes de parser avec des slashs "yyyy/MM/dd".
Donc soit tu changes l'un, soit tu changes l'autre, mais il faut être cohérent.
31 août 2014 à 22:06
voici le code
EtudiantController
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Etudiant etudiant = new Etudiant();
etudiant.setNom(request.getParameter("nom"));
etudiant.setPrenom(request.getParameter("prenom"));
etudiant.setAdresse(request.getParameter("adresse"));
etudiant.setTelephone(request.getParameter("telephone"));
etudiant.setEmail(request.getParameter("email"));
String idetudiant = request.getParameter("idetudiant");
String paramDateNaiss=request.getParameter("datenaiss");
String format="yyyy-MM-dd";
try {
Date datenaiss= new SimpleDateFormat(format).parse(paramDateNaiss);
etudiant.setDatenaiss(datenaiss);
} catch (Exception e) {
throw new IllegalArgumentException("param datenaiss="+paramDateNaiss+" is not a valid '"+format+" ' date", e);
}
if(idetudiant == null || idetudiant.isEmpty())
{
dao.addEtudiant(etudiant);
}
else
{
etudiant.setIdetudiant(Integer.parseInt(idetudiant));
dao.updateEtudiant(etudiant);
}
RequestDispatcher view = request.getRequestDispatcher(LIST_ETUDIANT);
request.setAttribute("etudiants", dao.getAllEtudiant());
view.forward(request, response);
}
et la page jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" href="css/style.css" />
<script language="javascript">
function verif_champ()
{
if(document.frmAddUser.nom.value=="")
{
alert("Le Champ Est Obligatoire Merci !!!");
document.frmAddUser.nom.focus();
return false;
}
if(document.frmAddUser.prenom.value=="")
{
alert("Le Champ Est Obligatoire Merci !!!");
document.frmAddUser.prenom.focus();
return false;
}
if(document.frmAddUser.adresse.value=="")
{
alert("Le Champ Est Obligatoire Merci !!!");
document.frmAddUser.adresse.focus();
return false;
}
if(document.frmAddUser.telephone.value=="")
{
alert("Le Champ Est Obligatoire Merci !!!");
document.frmAddUser.telephone.focus();
return false;
}
if(document.frmAddUser.email.value=="")
{
alert("Le Champ Est Obligatoire Merci !!!")
document.frmAddUser.email.focus();
return false;
}
if(document.frmAddUser.datenaiss.value=="")
{
alert("Le Champ Est Obligatoire Merci !!!")
document.frmAddUser.datenaiss.focus();
return false;
}
}
</script>
<title>Insert title here</title>
</head>
<body>
<form method="POST" action='EtudiantController' name="frmAddUser" onsubmit="return verif_champ()">
<label> Numero Etudiant : </label><input type="text" readonly="readonly" name="idetudiant" disabled="disabled"
<c:out value="${etudiant.idetudiant}" />/> <br />
<label> Nom : </label> <input type="text" name="nom"
<c:out value="${etudiant.nom}" />/> <br />
<label> Prenom : </label> <input type="text" name="prenom"
<c:out value="${etudiant.prenom}" />/> <br />
<label> Adresse : </label> <input type="text" name="adresse"
<c:out value="${etudiant.adresse}" />/> <br />
<label> Telephone : </label> <input type="text" name="telephone"
<c:out value="${etudiant.telephone}" />/> <br />
<label> Email : </label> <input type="text" name="email"
<c:out value="${etudiant.email}" /> /> <br />
<label> Date Naissance : </label> <input type="text" name="datenaiss"
<fmt:formatDate pattern="yyyy-MM-dd" value="${etudiant.datenaiss}" />/> <br />
<input type="submit" value="Submit" />
</form>
</body>
</html>
merci d'avance pour votre disponibilité