Erreur "java.util.ArrayList cannot be cast"
Bonjour,
j’espère que vous pourriez m'aider, mon problème est dans la classe ModifierAction quand je cherche dans ma base de donnée le nom de serveur saisi et je le fait un cast à type Serveur ça ne marche pas :( est ce que quelq'un connais une solution merci d'avance
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
| public class ModifservAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ModifservForm modifservForm = (ModifservForm) form;// TODO Auto-generated method stub
String map="Echec";
ServeurDAO daos = new ServeurDAO() ;
Serveur serv = new Serveur();
String nom= modifservForm.getNom_serv();
System.out.println("nom serv :"+nom);
/*daos.findByNomServ() retourne une liste
* c'est une methode genreré automatiquement par DAO
*/
serv= (Serveur) daos.findByNomServ(nom);
if (serv != null)
{
serv.setIpServ(modifservForm.getIp_serv());
serv.setPortServ(modifservForm.getPort_serv());
serv.setType(modifservForm.getType());
serv.setDescription(modifservForm.getDesc());
daos.updateByname(serv, nom);
map="Succes";}
return mapping.findForward(map);
}
} |
et voici mon erreur :calim2:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| GRAVE: "Servlet.service()" pour la servlet action a généré une exception
java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.load.hibernate.Serveur
at com.load.struts.action.ModifservAction.execute(ModifservAction.java:43)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619) |
et voici la méthode findByNomserv()
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| @SuppressWarnings("unchecked")
public List<Serveur> findByProperty(String propertyName, Object value) {
log.debug("finding Serveur instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from Serveur as model where model."
+ propertyName + "= ?";
Query queryObject = getSession().createQuery(queryString);
queryObject.setParameter(0, value);
return queryObject.list();
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}
public List<Serveur> findByNomServ(Object nomServ) {
return findByProperty(NOM_SERV, nomServ);
} |