Bonjour:
j'ai un Prb pr afficher les données sur une liste: jutiliz:Struts+Tomcat+JSP+Oracle+Hibernate.
1: il y a pas de prblm avc Hibernate car deja j'ai créé une classe de test pour insertion suppression et affichage sur la console et ça marchait bien
(deja les tables ont été remplis grace à cette Classe de Test.java)
2: le probleme est quelque part f les actions et les forms coté Struts:
voilà mes fichiers un par un :
=====================
Struts-config.XML:
________________
<action
attribute="projetListForm"
input="/projets/coprojet.jsp"
name="projetListForm"
path="/nosprojets"
scope="request"
type="ma.cor.soft.pfe.action.ChargeProjet"
validate="false">
<forward name="showProjetList" path="/projets/coprojet.jsp" />
</action>
<action
attribute="projetEditForm"
input="/projets/moprojet.jsp"
name="projetEditForm"
parameter="do"
path="/projetEdit"
scope="request"
type="ma.cor.soft.pfe.action.ProjetEditAction">
<forward name="showEdit" path="/projets/moprojet.jsp" />
<forward name="showList" path="/nosprojets.do" redirect="true" />
<forward name="showAdd" path="/projets/ajprojet.jsp" />
</action>
_____________________________________
mes Actions:
__________
package ma.cor.soft.pfe.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import ma.cor.soft.pfe.metier.MetierManager;
import ma.cor.soft.pfe.beans.*;
public class ProjetEditAction extends DispatchAction {
public ActionForward editProjet(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
{
System.out.println("editProjet");
ProjetEditForm projetEditForm = (ProjetEditForm) form;
String id = String.valueOf(request.getParameter("id"));
MetierManager classemetierManager = new MetierManager();
projetEditForm.setProjet(classemetierManager.getProjetByPrimaryKey(id));
return mapping.findForward("showEdit");
}
public ActionForward returnProjet(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
{
System.out.println("returnProjet");
ProjetEditForm projetEditForm = (ProjetEditForm) form;
String id = String.valueOf(request.getParameter("id"));
MetierManager classemetierManager = new MetierManager();
classemetierManager.returnProjet(id);
return mapping.findForward("showList");
}
public ActionForward deleteBook(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
{
System.out.println("deleteProjet");
ProjetEditForm projetEditForm = (ProjetEditForm) form;
Integer id = Integer.valueOf(request.getParameter("id"));
MetierManager classemetierManager = new MetierManager();
classemetierManager.removeProjetByPrimaryKey(id);
return mapping.findForward("showList");
}
public ActionForward addProjet(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
{
System.out.println("addProjet");
ProjetEditForm projetEditForm = (ProjetEditForm) form;
return mapping.findForward("showAdd");
}
public ActionForward saveProjet(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
{
ProjetEditForm projetEditForm = (ProjetEditForm) form;
MetierManager classemetierManager = new MetierManager();
classemetierManager.saveProjet(projetEditForm.getProjet());
return mapping.findForward("showList");
}
}
mon action chargeProjet.java
________________________
package ma.cor.soft.pfe.action;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import ma.cor.soft.pfe.metier.*;
import ma.cor.soft.pfe.mapping.*;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.*;
import ma.cor.soft.pfe.beans.*;
public class ChargeProjet extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws SQLException, IOException, ServletException
{
ProjetForm act = (ProjetForm)form;
MetierManager l = new MetierManager();
Projet[] ad = new Projet[0] ;
ad = l.getProjets();
act.setAct(ad) ;
return mapping.findForward("success2");
}
}
_____________________________________
mon beans :
__________
package ma.cor.soft.pfe.beans;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import ma.cor.soft.pfe.mapping.*;
public class ProjetEditForm extends ActionForm {
private Projet projet;
public Projet getProjet() { return projet; }
public void setProjet(Projet book) { this.projet = book; }
public void reset(ActionMapping arg0, HttpServletRequest arg1) { projet =new Projet(); }
public boolean equals(Object rhs) { return projet.equals(rhs); }
public int hashCode() { return projet.hashCode(); }
//public List getProjets() {
//}
public String getIdProjet() { return projet.getIdProjet(); }
public void setIdProjet(String idProjet) { projet.setIdProjet(idProjet); }
public String getIntituleProjet() { return projet.getIntituleProjet(); }
public void setIntituleProjet(String intituleProjet) { projet.setIntituleProjet(intituleProjet); }
public String getDateDebut() { return projet.getDateDebut(); }
public void setDateDebut(String dateDebut) { projet.setDateDebut(dateDebut); }
public String getDuree() { return projet.getDuree(); }
public void setDuree(String duree) { projet.setDuree(duree); }
public String getClient() { return projet.getClient(); }
public void setClient(String client) { projet.setClient(client); }
public String getDescription() { return projet.getDescription(); }
public void setDescription(String description) { projet.setDescription(description); }
public java.util.Set getActiviteSet() { return projet.getActiviteSet(); }
public void setActiviteSet(java.util.Set activiteSet) { projet.setActiviteSet(activiteSet); }
}
_____________________________________
Ma classe metier:
_______________
package ma.cor.soft.pfe.metier;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import ma.cor.soft.pfe.mapping.*;
//import de.laliluna.library.HibernateSessionFactory;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import ma.cor.soft.pfe.mapping.*;
public class MetierManager {
public Projet[] getProjets() {
/* will hold the books we are going to return later */
Set activites = new HashSet();
/* a Hibernate session */
Session session = null;
/* we always need a transaction */
Transaction tx = null;
try {
/* get session of the current thread */
session = Hibutil.currentSession();
tx = session.beginTransaction();
Query query = session.createQuery("select b from Projet as b ");
for (Iterator iter = query.iterate(); iter.hasNext();) {
activites.add((Projet) iter.next());
}
tx.commit();
} catch (HibernateException e) {
e.printStackTrace();
// [laliluna] 17.12.2004 it is recommended to roll back the transaction after an error occured
if (tx != null) try {
tx.rollback();
} catch (HibernateException e1) {
e1.printStackTrace();
}
} finally {
try {
if (session != null) session.close();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
return (Projet[]) activites.toArray(new Projet[0]);
}
public Projet getProjetByPrimaryKey(String primaryKey) {
Projet book = null;
Session session = null;
Transaction tx = null;
try {
session = Hibutil.currentSession();
tx = session.beginTransaction();
book = (Projet) session.get(Projet.class, primaryKey);
tx.commit();
} catch (HibernateException e) {
e.printStackTrace();
if (tx != null) try {
tx.rollback();
} catch (HibernateException e1) {
e1.printStackTrace();
}
} finally {
try {
if (session != null) session.close();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
return book;
}
public void returnProjet(String primaryKey) {
Session session = null;
Transaction tx = null;
try {
session = Hibutil.currentSession();
tx = session.beginTransaction();
Projet book = (Projet) session.get(Projet.class, primaryKey);
if (book != null)
tx.commit();
} catch (HibernateException e) {
e.printStackTrace();
if (tx != null) try {
tx.rollback();
} catch (HibernateException e1) {
e1.printStackTrace();
}
} finally {
try {
if (session != null) session.close();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
}
public void saveProjet(Projet bookValue) {
Session session = null;
Transaction tx = null;
try {
session = Hibutil.currentSession();
tx = session.beginTransaction();
Projet book;
if (bookValue.getIdProjet() != null) {
book = (Projet) session.get(Projet.class, bookValue.getIdProjet());
if (book != null) {
book.setIntituleProjet(bookValue.getIntituleProjet());
book.setClient(bookValue.getClient());
book.setDateDebut(bookValue.getDateDebut());
book.setDuree(bookValue.getDuree());
book.setDescription(bookValue.getDescription());
session.update(book);
}
}
else
{
book = new Projet();
book.setIntituleProjet(bookValue.getIntituleProjet());
book.setClient(bookValue.getClient());
book.setDateDebut(bookValue.getDateDebut());
book.setDuree(bookValue.getDuree());
book.setDescription(bookValue.getDescription());
session.save(book);
}
tx.commit();
} catch (HibernateException e) {
e.printStackTrace();
if (tx != null) try {
tx.rollback();
} catch (HibernateException e1) {
e1.printStackTrace();
}
} finally {
try {
if (session != null) session.close();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
}
public void removeProjetByPrimaryKey(Integer primaryKey) {
Session session = null;
Transaction tx = null;
try {
session = Hibutil.currentSession();
tx = session.beginTransaction();
Projet book = (Projet) session.get(Projet.class, primaryKey);
if (book != null) session.delete(book);
tx.commit();
} catch (HibernateException e) {
e.printStackTrace();
if (tx != null) try {
tx.rollback();
} catch (HibernateException e1) {
e1.printStackTrace();
}
} finally {
try {
if (session != null) session.close();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
}
}
_____________________________________
Enfin si vous voulez la page JSP:
______________________________
<%@ page language="java"%>
<%@ taglib uri="
[ Lien ]" prefix="bean"%>
<%@ taglib uri="
[ Lien ]" prefix="html"%>
<%@ taglib uri="
[ Lien ]" prefix="logic" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
[ Lien ]">
<html>
<head>
<title>[Ges.RESSOURCES] Corporate Software 2006 -Casablanca-</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.Style1 {
font-size: 14px;
color: #666666;
}
.Style2 {
font-family: "Palatino Linotype";
font-weight: bold;
}
-->
</style>
</head>
<body bgColor=#bb98dc>
<table width="1018" height="522" border="0" align="center">
<tr>
<td width="1" height="23"> </td>
<td colspan="6"><div align="center">
<h2 class="Style2">LISTE DES PROJETS</h2>
</div></td>
<td width="5"> </td>
</tr>
<tr>
<td height="23"> </td>
<td colspan="6"> </td>
<td> </td>
</tr>
<tr>
<td height="38"> </td>
<td colspan="6"><div align="center"></div></td>
<td> </td>
</tr>
<tr>
<td height="26"> </td>
<td width="497">
<div align="right">
<input type="submit" name="Submit2" value="Ajouter nouveau Projet">
</div>
</td>
<td>
<div align="left">
<input type="submit" name="Submit3" value="Modifier">
</div>
</td>
<td>
<div align="right">
<input type="submit" name="Submit4" value="Supprimer">
</div>
</td>
<td>
<div align="left">
<input name="Reset" type="reset" id="Reset" value="Annuler">
</div>
</td>
<td width="50"> </td>
<td width="2"> </td>
</tr>
<tr>
<td height="306"> </td>
<td colspan="6">
<TABLE width="995" border=0>
<TBODY>
<TR>
<TD width="1%" align=middle bgColor=#bb98dc>
</TD>
<TD width="19%" rowspan="2" bgColor=#0099FF><div align="center"><strong>Projet</strong></div></TD>
<TD width="18%" rowspan="2" bgColor=#0099FF><div align="center"><strong>Client</strong></div></TD>
<TD width="19%" rowspan="2" bgColor=#0099FF><div align="center"><strong>Date recette</strong></div></TD>
<TD width="30%" rowspan="2" bgColor=#0099FF><div align="center"><strong>Description de Projet</strong></div></TD>
<TD width="6%" rowspan="2" bgColor=#BB98DC> </TD>
<TD width="7%" rowspan="2" bgColor=#BB98DC><div align="center"></div></TD>
</TR>
<TR>
<TD height="21" align=middle bgColor=#bb98dc> </TD>
</TR>
<logic:iterate name="projetEditForm" property="act" id="ac">
<TR>
<TD width="1%" height="21" align=middle bgColor=#bb98dc></TD>
<TD width="19%" rowspan="3" bgColor=#ddccee>
<bean:write name="ac" property="client" />
</TD>
<TD width="18%" rowspan="3" bgColor=#ddccee> </TD>
<TD width="19%" rowspan="3" bgColor=#ddccee> </TD>
<TD width="30%" rowspan="3" bgColor=#ddccee> </TD>
<TD width="6%" rowspan="3" bgColor=#ddccee>
<div align="center"><html:link action="projetEdit.do?do=editProjet"
paramName="projet"
paramProperty="id_projet"
paramId="id">Edit</html:link>
</div></TD>
<TD width="7%" rowspan="3" bgColor=#ddccee>
<div align="center"><html:link action="projetEdit.do?do=deleteProjet"
paramName="projet"
paramProperty="id_projet"
paramId="id">Delete</html:link>
</div></TD>
</TR>
<TR>
<TD height="16" align=middle bgColor=#bb98dc> </TD>
</TR>
<TR>
<TD height="21" align=middle bgColor=#bb98dc> </TD>
</TR>
</logic:iterate>
</TBODY></TABLE>
<br>
<%-- add and back to menu button --%>
<html:button property="add"
onclick="location.href='projetEdit.do?do=addProjet'">Add a new projet
</html:button>
<html:button property="back"
onclick="location.href='default.do'">Back to menu
</html:button>
</td>
<td> </td>
</tr>
<tr>
<td height="44"> </td>
<td> </td>
<td width="68"> </td>
<td width="89"> </td>
<td width="272"> </td>
<td width="50"> </td>
<td width="2"> </td>
<td> </td>
</tr>
<tr>
<td height="23"> </td>
<td colspan="6"><div align="center" class="Style1"> </div></td>
<td> </td>
</tr>
</table>
<p> </p>
</body>
</html>
_____________________________________
NB : pour la table les chanps sont tous des varchars et la connexion est prise en charge par Hibernate et ça marche bien
_____________________________________
Lorsque je deploie ceci sur Tomcat: et qd je lance l URL:
[ Lien ] j ai l l'ERREUR suivante:
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
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
cause mère
java.lang.NullPointerException
ma.cor.soft.pfe.action.ChargeProjet.execute(ChargeProjet.java:28)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/5.5.9.
_______________________________________________
si klk un a une idee qu il m aide et MERCI d avance