salut , j'ai appliqué un tuto : je crée un projet spring , puis une classe et un bean.xml ou en met des données et en fin une classe contenant le test du code (le main) .
Developpeur.java
SocDevlogiciel.java
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 package com.spring.test; public class Developpeur { private String nom; private int annesExperiences; public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } public int getAnnesExperiences() { return annesExperiences; } public void setAnnesExperiences(int annesExperiences) { this.annesExperiences = annesExperiences; } }
Bean.xml (J'AI AJOUTER CE QUI EST EN ROUGE comme exercice)
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 package com.spring.test; public class SocDevlogiciel { private Developpeur developpeur; private Developpeur chefDeveloppeur; public Developpeur getDeveloppeur() { return developpeur; } public void setDeveloppeur(Developpeur developpeur) { this.developpeur = developpeur; } public Developpeur getChefdeveloppeur() { return chefDeveloppeur; } public void setChefdeveloppeur(Developpeur chefDeveloppeur) { this.chefDeveloppeur = chefDeveloppeur; } }
dans un autre package ,
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 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="developpeur" class="com.spring.test.Developpeur"> <property name="nom" value="Zouhir"></property> <property name="annesExperiences"> <value>7</value> </property> </bean> <bean id="ChefDeveloppeur" class="com.spring.test.Developpeur"> <property name="nom" value="Soufiane"></property> <property name="annesExperiences"> <value>10</value> </property> </bean> <bean id="SocDevlogiciel" class="com.spring.test.SocDevlogiciel"> <property name="chefdeveloppeur" ref="ChefDeveloppeur"></property> <property name="developpeur" ref="developpeur"></property> </bean> </beans>
TestApp.java
normalment à la fin quand je fais un run on console , la console doit m'afficher le nom du developpeur et du chefdeveloppeur (selon le tuto) , sauf que le tuto te donne juste faire la premiére partie du bean.xml c'est à dire le primier programmeur et le deuxiéme je dois le faire (comme exercice) ainsi que la societé de logiciel qui reference les deux developpeur.
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 package com.spring.test.test; import org.springframework.util.ClassUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import com.spring.test.SocDevlogiciel; public class TestApp { private static final Logger logger = Logger.getLogger(TestApp.class); /** * @param args */ public static void main(String[] args) { BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource ("test-bean.xml")); SocDevlogiciel societe = (SocDevlogiciel) beanFactory.getBean("SocDevLogiciel"); logger.info("chef Developpeur :" +societe.getChefdeveloppeur().getNom()); logger.info("Developpeur :" +societe.getDeveloppeur().getNom()); } }
or il m'affiche ceci
sachant que le log4j est tellog4j:WARN No appenders could be found for logger (org.springframework.util.ClassUtils).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [test-bean.xml]; nested exception is java.io.FileNotFoundException: class path resource [test-bean.xml] cannot be opened because it does not exist
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:349)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:73)
at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:61)
at com.spring.test.test.TestApp.main(TestApp.java:16)
Caused by: java.io.FileNotFoundException: class path resource [test-bean.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:142)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
... 4 more
Quelqu'un saurait afficher le noms des deux développeurs ?
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 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration PUBLIC "http://logging.apache.org/log4j/docs/api/org/apache/log4j/xml/log4j.dtd" "http://logging.apache.org/log4j/docs/api/org/apache/log4j/xml/log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="console" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.SimpleLayout"/> </appender> <root> <level value ="info" /> <appender-ref ref="console" /> </root> </log4j:configuration>
Partager