IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

Erreur "java.util.ArrayList cannot be cast"


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 41
    Points : 46
    Points
    46
    Par défaut 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 : 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
    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
    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
    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 : 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
    @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);
    	}

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 288
    Points : 261
    Points
    261
    Par défaut
    Citation Envoyé par smile_88 Voir le message
    Bonjour,

    [CODE]

    serv= (Serveur) daos.findByNomServ(nom);


    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
    @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);
    	}
    Tu recupères un objet Serveur alors que ta requete te retourne une liste.
    Tu dois faire de mémoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    List<Serveur> serveurs = (List<Serveur>) daos.findByNomServ(nom);
    Serveur serv = serveurs.get(0);
    Merci de lire les règles du forum et surtout celle là Message clair et précis.
    Evitons les ctrl c ctrl v => Ne sortons pas les codes de leur contexte sinon ça ne marche pas.

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 41
    Points : 46
    Points
    46
    Par défaut
    j'ai fait comme tu m'as dis mais ça génrere un erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    javax.servlet.ServletException: java.lang.IllegalArgumentException: node to traverse cannot be null!
    	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.doPost(ActionServlet.java:525)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    apré verification je crois que ma methode update que je l'ai fait moi meme est fausse et elle est l'origine de l'erreur car quand j'ai fait votre modification ca et j'ai remplacé update par save ca marché mais ca ne sauvegarde pas dans la base
    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
     public void updateByname(Serveur persistentInstance,String name){
        	log.debug("updating Serveur instance with nomServ : "+name);
        	try {
        		String queryString = "update Serveur as model " +
        				"set model.ipServ = " +persistentInstance.getIpServ()+
        				", model.portServ = " +persistentInstance.getPortServ()+
        				", model.type = " +persistentInstance.getType()+
        				", model.description =  " +persistentInstance.getDescription()+
        				"where model.nomServ ="+ name;
    			Query queryObject = getSession().createQuery(queryString);
    			queryObject.list();
    			log.debug("update successful");
    		} catch (RuntimeException re) {
    			log.error("update failed", re);
    			throw re;
    		}
    	}

Discussions similaires

  1. Réponses: 7
    Dernier message: 20/01/2015, 10h33
  2. Réponses: 0
    Dernier message: 19/03/2010, 14h36
  3. java.lang.String cannot be cast to Item
    Par cotede2 dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 10/11/2009, 14h34
  4. Réponses: 3
    Dernier message: 12/04/2009, 18h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo