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

Spring Java Discussion :

[ SpringIOC - Champs - Type - Date ]


Sujet :

Spring Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 14
    Points : 10
    Points
    10
    Par défaut [ SpringIOC - Champs - Type - Date ]
    Bonjour , En fait j'ai un problème sous Spring Ioc avec un champs de Type Date, j'ai pas pu m'en sortir de ce problème

    voila la Classe qui Contient le Champs Date

    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
    package achat.vente;
     
    import java.util.Date;
     
    public class Commande 
    {
       private Long id;
       private Date dateCommande;
     
       public Commande() {
    	super();
    	// TODO Auto-generated constructor stub
        }
     
       public Commande(Date dateCommande, Long id) {
    	super();
    	this.dateCommande = dateCommande;
    	this.id = id;
      }
     
    public Long getId() {
    	return id;
    }
     
    public void setId(Long id) {
    	this.id = id;
    }
     
    public Date getDateCommande() {
    	return dateCommande;
    }
     
    public void setDateCommande(Date dateCommande) {
    	this.dateCommande = dateCommande;
    }
     
    public String toString()
    {
    	return "id :" + id.toString() + "Date Commande :" + this.dateCommande;
    }
     
    }

    Puis je vous montre le Fichier Config.xml ( fichier Spring)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
     
    <beans>
      <bean id="beanCommande" class="achat.vente.Commande">
          <property name="id">
                  <value>1</value>
          </property>
         <property name="dateCommande" >
         <value>"05/06/1990"</value>
         </property>
    </bean>
    </beans>

    et voila la Class Test pour tester

    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
    package achat.test;
     
    import org.springframework.beans.factory.ListableBeanFactory;
    import org.springframework.beans.factory.xml.XmlBeanFactory;
    import org.springframework.core.io.ClassPathResource;
     
     
    import achat.vente.Commande;
     
    import junit.framework.TestCase;
     
    public class Test extends TestCase {
     
    	private ListableBeanFactory fr;
     
    	protected void setUp() throws Exception 
    	{
    		fr=new XmlBeanFactory(new ClassPathResource("config.xml"));
     
    	}
     
    	public void test()
    	{
     
    		Commande com=(Commande) fr.getBean("beanCommande");
    		System.out.println(com.toString());
    	}
     
     
    }
    Enfin je vous montre l'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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'beanCommande' defined in class path resource [config.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyAccessExceptionsException: PropertyAccessExceptionsException (1 errors); nested propertyAccessExceptions are: [org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.lang.String] to required type [java.util.Date] for property 'dateCommande']
    PropertyAccessExceptionsException (1 errors)
    org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.lang.String] to required type [java.util.Date] for property 'dateCommande'
    	at org.springframework.beans.BeanWrapperImpl.doTypeConversionIfNecessary(BeanWrapperImpl.java:1068)
    	at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:821)
    	at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:734)
    	at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:862)
    	at org.springframework.beans.BeanWrapperImpl.setPropertyValues(BeanWrapperImpl.java:889)
    	at org.springframework.beans.BeanWrapperImpl.setPropertyValues(BeanWrapperImpl.java:878)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:934)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:731)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:340)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:226)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)
    	at achat.test.Test.test(Test.java:27)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at junit.framework.TestCase.runTest(TestCase.java:164)
    	at junit.framework.TestCase.runBare(TestCase.java:130)
    	at junit.framework.TestResult$1.protect(TestResult.java:106)
    	at junit.framework.TestResult.runProtected(TestResult.java:124)
    	at junit.framework.TestResult.run(TestResult.java:109)
    	at junit.framework.TestCase.run(TestCase.java:120)
    	at junit.framework.TestSuite.runTest(TestSuite.java:230)
    	at junit.framework.TestSuite.run(TestSuite.java:225)
    	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
    	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
    Merci bcp de m'aider de ce problème

    Et merci d'avance

  2. #2
    Membre actif Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Points : 268
    Points
    268
    Par défaut
    bonjour,

    dans ton fichier de config tu est entrain de lui passer le parametre date comme étant un objet String alors que dans ta classe tu utilise le type Date.
    tu peux indiquer à spring quel type de donnée il est entrain de manipuler en utilisant l'attribut type.

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Je vous remercie pour ta réponse , mais j’ai déjà utilisé l’attribut type comme suite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     <bean id="beanCommande" class="achat.vente.Commande">
          <property name="id">
                  <value>1</value>
          </property>
         <property name="dateCommande" >
         <value type="java.util.Date">"05/06/1990"</value>
         </property>
    </bean>
    et aussi j'ai testé d'enlever les Guillemets "" mais toujours le même problème

    Merci bcp pour ton intérêt

  4. #4
    Membre actif Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Points : 268
    Points
    268
    Par défaut
    essai de formater la date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SimpleDateFormat sdf =  new SimpleDateFormat(DATE_FORMAT);
    avant de l'utiliser.

  5. #5
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Salut
    Et essaies sans les guillemets autour de la valeur.

  6. #6
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Points : 6 301
    Points
    6 301
    Par défaut
    Comme je ne suis jamais sur du format des Dates au Runtime (dépendant de la locale) je te conseille d'ajouter un 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
    <bean id="customEditorConfigurer"
    class="org.springframework.beans.factory.config.CustomEditorConfigurer">
        <property name="customEditors">
            <map>
                <entry key="java.util.Date">
                    <bean class="org.springframework.beans.propertyeditors.CustomDateEditor">
                        <constructor-arg index="0">
                            <bean class="java.text.SimpleDateFormat">
                                <constructor-arg value="dd/MM/yyyy"/>
                            </bean>
                        </constructor-arg>
                        <constructor-arg index="1" value="false"/>
    		</bean>
                </entry>
            </map>
        </property>
    </bean>
    Ca permet d'enregistrer un convertisseur sur les types "Date", avec un format de ton choix !

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/09/2010, 16h11
  2. Champs type date
    Par ala1255 dans le forum DB2
    Réponses: 4
    Dernier message: 20/03/2008, 09h53
  3. PB Requete de recherche d'un champ type date
    Par papy75 dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 05/03/2008, 18h36
  4. format saisie de champs type DATE
    Par dohamsg dans le forum Firebird
    Réponses: 1
    Dernier message: 31/08/2007, 10h59
  5. Réponses: 6
    Dernier message: 21/12/2006, 11h23

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