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

JSF Java Discussion :

Erreur "java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number"


Sujet :

JSF Java

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    49
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 49
    Par d�faut Erreur "java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number"
    Bonjour tous;
    J'ai une erreur qui apparait lors de developpement d'une application j2ee, j'utilise jpa et jsf.L'erreur apparait lors de l'ajourt(action ajouter) ," java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number". voici les codes xhtml et le bean:
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:composite="http://java.sun.com/jsf/composite">
    <head>
    </head>
    <body>
    <h2> INFORMATIONS DEPARTEMENT </h2>
    <hr /><hr />
    <h:form> 
    <h:panelGrid columns="2" cellpadding="2" >
    NOM : <h:inputText   value ="#{deprtBean.dep.nomdepart}"/>
        <br /> <br />
     
    <h:commandButton value="Ajouter" action="#{deprtBean.ajouter }"/>
     		</h:panelGrid>
    </h:form>
    </body>
    </html>
    le bean correspondant est :
    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
    28
    29
     
    package com.xx.personne.controlleur;
     
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.SessionScoped;
    import com.xx.personne.dao.deprtdao;
    import com.xx.personne.persistence.deprt;
     
    @ManagedBean
    @SessionScoped
    public class deprtBean {
     
    	private deprt dep=new deprt();
    	deprtdao depdao=new deprtdao();
    	public deprtBean() {
    		// TODO Auto-generated constructor stub
    	}
    	public deprt getDep() {
    		return dep;
    	}
    	public void setDep(deprt dep) {
    		this.dep = dep;
    	}
    /***************************/
    	public String ajouter(){
    		depdao.ajouter(dep);
    		return null;
    		}
    }
    Le dao :
    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
    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    package com.xx.personne.dao;
     
    import java.util.List;
     
    import javax.persistence.EntityManager;
    import javax.persistence.Persistence;
     
    import com.xx.personne.persistence.deprt;
     
    public class deprtdao {
    	private deprt dep=new deprt();
    	private EntityManager ed;
     
    	public deprtdao() {
    		// TODO Auto-generated constructor stub
    	}
     
    	public deprt getDep() {
    		return dep;
    	}
     
    	public void setDep(deprt dep) {
    		this.dep = dep;
    	}
     
    	public EntityManager getEd() {
    		if(ed==null)
    			ed=Persistence.createEntityManagerFactory("Personne").createEntityManager();
    		return ed;
    	}
     
    	public void ajouter(deprt dep){
    	 getEd().getTransaction().begin();
    		getEd().persist(dep);
    		getEd().getTransaction().commit();
    	}
     
    	public void modifier(deprt dep) {
    		// TODO Auto-generated method stub
    		getEd().getTransaction().begin();
    		getEd().merge(dep);
    		getEd().getTransaction().commit();
    	}
     
    	public void supprimer(deprt dep) {
    		// TODO Auto-generated method stub
    		getEd().getTransaction().begin();
    		getEd().remove(dep);
    		getEd().getTransaction().commit();
    	}
    	public List<deprt>  selectAll(){
    		try {
    			@SuppressWarnings("unchecked")
    			List<deprt> resultList = getEd().createQuery("select dep  from deprt dep").getResultList();
    			return resultList;
     
    		} catch (Exception e) {
    			return null;
    			// TODO: handle exception
    		}
    	}
     
    	public deprt  selectBynom(String nomdepr){
    		try {
    			deprt resultList = (deprt) getEd().createQuery("select dep  from deprt dep where dep.nom=:pp").setParameter("pp", nomdepr).getSingleResult();
    			return resultList;
     
    		} catch (Exception e) {
    			return null;
    			// TODO: handle exception
    		}
    }
    }
    Je ne sais pas ou il se realise le cast exactement!!
    merci pour votre aide

  2. #2
    Membre exp�riment�
    Homme Profil pro
    D�veloppeur Java/JavaEE
    Inscrit en
    Ao�t 2014
    Messages
    194
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activit� : D�veloppeur Java/JavaEE

    Informations forums :
    Inscription : Ao�t 2014
    Messages : 194
    Par d�faut
    Bonjour,

    (Pour �tre un bon d�veloppeur il est tr�s conseiller d'apprendre les conventions de base de Java. Exemple: la premi�re lettre d'une classe s'�crit toujours en majuscule ainsi que la premi�re lettre d'un nom compos�).
    Sinon l'erreur semble clair. Tu es entrain d'affecter un String dans un Number !!
    Pourrais tu nous partager la classe(le mod�le) que tu es entrain d�ins�rer "deprt "??

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    49
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 49
    Par d�faut
    merci pour ta reponse.ok voici le code de deprt:
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    package com.xx.personne.persistence;
     
    import java.util.List;
     
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.OneToMany;
    import static javax.persistence.CascadeType.PERSIST;
     
    @Entity
    public class deprt {
     
    private int iddepart;
    private String nomdepart;
    private List<personnel> perslist;
    	public deprt() {
     
    		// TODO Auto-generated constructor stub
    	}
    	public String getNomdepart() {
    		return nomdepart;
    	}
    	public void setNomdepart(String nomdepart) {
    		this.nomdepart = nomdepart;
    	}
    	@Id
    	@GeneratedValue(strategy=GenerationType.AUTO)
    	public int getIddepart() {
    		return iddepart;
    	}
    	public void setIddepart(int iddepart) {
    		this.iddepart = iddepart;
    	}
    	@OneToMany(cascade = PERSIST)
    	public List<personnel> getPerslist() {
    		return perslist;
    	}
    	public void setPerslist(List<personnel> perslist) {
    		this.perslist = perslist;
    	}
     
    }

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    49
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 49
    Par d�faut
    Je ne sais si c'est correct, mais l'erreur est due � une table " sequence" qui se genere automatiqument comment arreter sa generation? voici une trace du message d'eclipse:
    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
    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
    [TopLink Fine]: 2015.01.20 09:37:27.815--ClientSession(24286958)--Connection(4618022)--Thread(Thread[http-bio-8080-exec-3,5,main])--SELECT SEQ_COUNT FROM SEQUENCE WHERE SEQ_NAME = ?
    	bind => [SEQ_GEN]
    [TopLink Warning]: 2015.01.20 09:37:27.862--UnitOfWork(33217484)--Thread(Thread[http-bio-8080-exec-3,5,main])--java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number
    janv. 20, 2015 9:37:27 AM com.sun.faces.lifecycle.InvokeApplicationPhase execute
    AVERTISSEMENT: #{deprtBean.ajouter }: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number
    javax.faces.FacesException: #{deprtBean.ajouter }: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number
    	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:117)
    	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
    	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:791)
    	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1256)
    	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    Caused by: javax.faces.el.EvaluationException: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number
    	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
    	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:101)
    	... 26 more
    Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number
    	at oracle.toplink.essentials.sequencing.QuerySequence.updateAndSelectSequence(QuerySequence.java:269)
    	at oracle.toplink.essentials.sequencing.StandardSequence.getGeneratedVector(StandardSequence.java:81)
    	at oracle.toplink.essentials.sequencing.DefaultSequence.getGeneratedVector(DefaultSequence.java:153)
    	at oracle.toplink.essentials.sequencing.Sequence.getGeneratedVector(Sequence.java:266)
    	at oracle.toplink.essentials.internal.sequencing.SequencingManager$Preallocation_Transaction_NoAccessor_State.getNextValue(SequencingManager.java:404)
    	at oracle.toplink.essentials.internal.sequencing.SequencingManager.getNextValue(SequencingManager.java:832)
    	at oracle.toplink.essentials.internal.sequencing.ClientSessionSequencing.getNextValue(ClientSessionSequencing.java:95)
    	at oracle.toplink.essentials.internal.descriptors.ObjectBuilder.assignSequenceNumber(ObjectBuilder.java:225)
    	at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.assignSequenceNumber(UnitOfWorkImpl.java:341)
    	at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.registerNotRegisteredNewObjectForPersist(UnitOfWorkImpl.java:3255)
    	at oracle.toplink.essentials.internal.ejb.cmp3.base.RepeatableWriteUnitOfWork.registerNotRegisteredNewObjectForPersist(RepeatableWriteUnitOfWork.java:323)
    	at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:3206)
    	at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerImpl.persist(EntityManagerImpl.java:190)
    	at com.xx.personne.dao.deprtdao.ajouter(deprtdao.java:34)
    	at com.xx.personne.controlleur.deprtBean.ajouter(deprtBean.java:24)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.apache.el.parser.AstValue.invoke(AstValue.java:278)
    	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
    	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)

  5. #5
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par d�faut
    salut,
    peux-tu nous afficher le contenu de l�objet dep avant la persistence?

    Eric

  6. #6
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par d�faut
    tu utilises quoi comme base de donn�es?

  7. #7
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par d�faut
    si tu utilises Oracle,
    alors c�est plutot ceci:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    @Id
        @SequenceGenerator(name="seq", initialValue=1, allocationSize=100)
        @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq")  
        private Integer iddepart;
    ou seq est le nom de ta sequence.

    Si c�est MySQL alors:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Integer iddepart;
    en ayant bien sur mis iddepart dans ta base en auto_increment.

    Eric

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    49
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 49
    Par d�faut
    ah, c bon , l'erreur a �t� AUTO mais la correcte forme est
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 2
    Dernier message: 24/05/2011, 10h16
  2. R�ponses: 1
    Dernier message: 26/04/2010, 11h03
  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: 30/09/2009, 11h36
  5. 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