Bonjour,

J'ai un problème pour injecter les beans correctement.

Le package ma.tpmichemin._model contient 4 fichiers :

Article.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
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
75
76
77
78
79
package ma.tpmichemin._model;
 
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;
 
@Entity
@Table(name = "article", catalog = "tp_michemin")
public class Article implements java.io.Serializable {
 
    private Integer idArticle;
    private String libArticle;
    private String descArticle;
    private Integer prixArticle;
    private Marque marque;
 
    public Article() {
    }
 
    public Article(String libArticle, String descArticle, Integer prixArticle, Marque marque) {
        this.libArticle = libArticle;
        this.descArticle = descArticle;
        this.prixArticle = prixArticle;
        this.marque = marque;
    }
 
    @Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "ID_ARTICLE", unique = true, nullable = false)
    public Integer getIdArticle() {
        return this.idArticle;
    }
 
    public void setIdArticle(Integer idArticle) {
        this.idArticle = idArticle;
    }
 
    @Column(name = "LIB_ARTICLE", length = 30)
    public String getLibArticle() {
        return this.libArticle;
    }
 
    public void setLibArticle(String libArticle) {
        this.libArticle = libArticle;
    }
 
    @Column(name = "DESC_ARTICLE", length = 100)
    public String getDescArticle() {
        return this.descArticle;
    }
 
    public void setDescArticle(String descArticle) {
        this.descArticle = descArticle;
    }
 
    @Column(name = "PRIX_ARTICLE")
    public Integer getPrixArticle() {
        return this.prixArticle;
    }
 
    public void setPrixArticle(Integer prixArticle) {
        this.prixArticle = prixArticle;
    }
 
    @OneToOne(fetch = FetchType.LAZY, mappedBy = "article")
    public Marque getMarque() {
        return this.marque;
    }
 
    public void setMarque(Marque marque) {
        this.marque = marque;
    }
 
}
Marque.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
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
package ma.tpmichemin._model;
 
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
 
@Entity
@Table(name = "marque", catalog = "tp_michemin")
public class Marque implements java.io.Serializable {
 
    private Integer idMarque;
    private Article article;
    private String libMarque;
 
    public Marque() {
    }
 
    public Marque(Article article) {
        this.article = article;
    }
 
    public Marque(Article article, String libMarque) {
        this.article = article;
        this.libMarque = libMarque;
    }
 
    @GenericGenerator(name = "generator", strategy = "foreign", parameters = @Parameter(name = "property", value = "article"))
    @Id
    @GeneratedValue(generator = "generator")
    @Column(name = "ID_MARQUE", unique = true, nullable = false)
    public Integer getIdMarque() {
        return this.idMarque;
    }
 
    public void setIdMarque(Integer idMarque) {
        this.idMarque = idMarque;
    }
 
    @OneToOne(fetch = FetchType.LAZY)
    @PrimaryKeyJoinColumn
    public Article getArticle() {
        return this.article;
    }
 
    public void setArticle(Article article) {
        this.article = article;
    }
 
    @Column(name = "LIB_MARQUE", length = 30)
    public String getLibMarque() {
        return this.libMarque;
    }
 
    public void setLibMarque(String libMarque) {
        this.libMarque = libMarque;
    }
}
Article.hbm.xml
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
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 30 juin 2008 08:03:25 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="ma.tpmichemin._model.Article" table="article" catalog="tp_michemin">
        <id name="idArticle" type="java.lang.Integer">
            <column name="ID_ARTICLE" />
            <generator class="identity" />
        </id>
        <property name="libArticle" type="string">
            <column name="LIB_ARTICLE" length="30" />
        </property>
        <property name="descArticle" type="string">
            <column name="DESC_ARTICLE" length="100" />
        </property>
        <property name="prixArticle" type="java.lang.Integer">
            <column name="PRIX_ARTICLE" />
        </property>
        <one-to-one name="marque" class="ma.tpmichemin._model.Marque"></one-to-one>
    </class>
</hibernate-mapping>
[/QUOTE]Marque.hbm.xml
[quote]<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 30 juin 2008 08:03:25 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="ma.tpmichemin._model.Marque" table="marque" catalog="tp_michemin">
        <id name="idMarque" type="java.lang.Integer">
            <column name="ID_MARQUE" />
            <generator class="foreign">
                <param name="property">article</param>
            </generator>
        </id>
        <one-to-one name="article" class="ma.tpmichemin._model.Article" constrained="true"></one-to-one>
        <property name="libMarque" type="string">
            <column name="LIB_MARQUE" length="30" />
        </property>
    </class>
</hibernate-mapping>
Le package ma.tpmichemin.dao.Article contient 2 fichiers :

IArticle.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
package ma.tpmichemin.dao.Article;
 
import java.util.List;
 
import ma.tpmichemin._model.Article;
 
public interface IArticle {
    public boolean Ajouter(Article m) throws Exception;
    public boolean modifier(int id,Article m) throws Exception;
    public boolean Supprimer(int id) throws Exception;
    public List<Article> Rechercher(Article m);
    public List<Article> Lister();
}
ArticleDao.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
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package ma.tpmichemin.dao.Article;
 
import java.util.List;
 
import ma.tpmichemin._model.Article;
 
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Example;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;
 
@Repository
public class ArticleDao extends HibernateDaoSupport implements IArticle {
 
//    public ArticleDao() {
//        // TODO Auto-generated constructor stub
//    }
 
    @Override
    public boolean Ajouter(Article m) throws Exception {
        logger.info("Ajouter Article" + m.getLibArticle() + "");
        Session session = getHibernateTemplate().getSessionFactory()
                .getCurrentSession();
        Transaction tx = null;
        try {
            tx = session.beginTransaction();
            session.save(m);
            tx.commit();
            session.close();
        } catch (Exception e) {
            if (tx != null) {
                tx.rollback();
                return false;
            }
            throw e;
 
        }
 
        return true;
//        try {
//        getHibernateTemplate().save(m);
//        }catch (Exception e) {
//            return false;
//        }
//        return true;
 
    }
 
    @Override
    public boolean modifier(int id, Article m) throws Exception {
        logger.info("modifier Article" + m.getLibArticle() + "");
        Session session = getHibernateTemplate().getSessionFactory()
                .getCurrentSession();
        Transaction tx = null;
        try {
            tx = session.beginTransaction();
            Article article=(Article)session.load(Article.class,new Integer(id));
 
            if(m.getLibArticle()!=null)
            article.setLibArticle(m.getLibArticle());
            if(m.getDescArticle()!=null)
                article.setDescArticle(m.getDescArticle());
 
            session.update(article);
            tx.commit();
            session.close();
        } catch (Exception e) {
            if (tx != null) {
                tx.rollback();
                return false;
            }
            throw e;
 
        }
 
        return true;
    }
 
    @Override
    public boolean Supprimer(int id) throws Exception {
        logger.info("Supprimer Article");
        Session session = getHibernateTemplate().getSessionFactory()
                .getCurrentSession();
        Transaction tx = null;
        try {
            tx = session.beginTransaction();
            Article article=(Article)session.load(Article.class,new Integer(id));
            session.delete(article);
            tx.commit();
            session.close();
        } catch (Exception e) {
            if (tx != null) {
                tx.rollback();
                return false;
            }
            throw e;
 
        }
 
        return true;
    }
 
    @SuppressWarnings("unchecked")
    @Override
    public List<Article> Rechercher(Article m) {
        Session session = getHibernateTemplate().getSessionFactory()
                .getCurrentSession();
        Criteria crit=session.createCriteria(Article.class);
        crit.add(Example.create(m));
        return ((List<Article>)crit.list());
    }
 
    @SuppressWarnings("unchecked")
    @Override
    public List<Article> Lister() {
        System.out.println("debut lister dao");
        Session session =getSessionFactory().getCurrentSession();
        Query q=session.createQuery("from Article");
        //return getHibernateTemplate().find(q);
        System.out.println("fin lister dao");
        return (List<Article>)q.list();
    }
 
}
le package ma.tpmichemin.metier.Article contient 2 fichiers:

IArticleManager.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
package ma.tpmichemin.metier.Article;
 
import java.util.List;
 
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
 
import ma.tpmichemin._model.Article;
 
@Transactional (readOnly=false, propagation=Propagation.REQUIRED)
public interface IArticleManager {
    public boolean Ajouter(Article m) throws Exception;
    public boolean modifier(int id,Article m) throws Exception;
    public boolean Supprimer(int id) throws Exception;
    public List<Article> Rechercher(Article m);
    public List<Article> Lister();
 
}
ArticleManager.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
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
package ma.tpmichemin.metier.Article;
 
import java.util.List;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import ma.tpmichemin._model.Article;
import ma.tpmichemin.dao.Article.ArticleDao;
import ma.tpmichemin.dao.Article.IArticle;
 
@Service("article")
public class ArticleManager implements IArticleManager{
 
    @Autowired
    private IArticle article;
 
    public void setArticle(IArticle article) {
        this.article = article;
    }
 
    public IArticle getArticle() {
        return article;
    }
 
    @Override
    public boolean Ajouter(Article m) throws Exception {
        return article.Ajouter(m);
    }
 
    @Override
    public boolean modifier(int id, Article m) throws Exception {
        return article.modifier(id, m);
    }
 
    @Override
    public boolean Supprimer(int id) throws Exception {
        return article.Supprimer(id);
    }
 
    @Override
    public List<Article> Rechercher(Article m) {
        return article.Rechercher(m);
    }
 
    @Override
    public List<Article> Lister() {
        System.out.println("debut lister manager");
        System.out.println("taille liste"+article.Lister().size());
        return article.Lister();
    }
}
le package ma.tpmichemin.presentation.Article contient l'action struts 2:
ArticleAction.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
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package ma.tpmichemin.presentation.Article;
 
import java.util.List;
 
import org.springframework.beans.factory.annotation.Autowired;
 
import com.opensymphony.xwork2.ModelDriven;
 
import ma.tpmichemin._model.Article;
import ma.tpmichemin._model.Marque;
import ma.tpmichemin.metier.Article.ArticleManager;
import ma.tpmichemin.metier.Article.IArticleManager;
import ma.tpmichemin.presentation.service.BaseAction;
 
public class ArticleAction extends BaseAction {
 
    private String libArticle;
    private String descArticle;
    private Integer prixArticle;
    private Marque marque;
 
    private List<Article> listArticle;
 
    @Autowired
    private IArticleManager articlemanager;
 
 
    public void setLibArticle(String libArticle) {
        this.libArticle = libArticle;
    }
 
    public String getDescArticle() {
        return descArticle;
    }
 
    public void setDescArticle(String descArticle) {
        this.descArticle = descArticle;
    }
 
    public Integer getPrixArticle() {
        return prixArticle;
    }
 
    public void setPrixArticle(Integer prixArticle) {
        this.prixArticle = prixArticle;
    }
 
    public Marque getMarque() {
        return marque;
    }
 
    public void setMarque(Marque marque) {
        this.marque = marque;
    }
 
    public String Ajouter() {
        try {
            Article a = new Article();
            a.setDescArticle(descArticle);
            a.setLibArticle(libArticle);
            a.setMarque(marque);
            a.setPrixArticle(prixArticle);
            articlemanager.Ajouter(a);
        } catch (Exception e) {
            return "erreur";
        }
        return "success";
    }
 
    public String Modifier() {
        try {
 
        } catch (Exception e) {
            return "erreur";
        }
        return "success";
    }
 
    public String Rechercher() {
        try {
 
        } catch (Exception e) {
            return "erreur";
        }
        return "success";
    }
 
    public String Supprimer() {
        try {
 
        } catch (Exception e) {
            return "erreur";
        }
        return "success";
    }
 
    public String Lister(){
        System.out.println("debut Liste de ArticleAction");
        //articlemanager=new ArticleManager();
        if(articlemanager==null)
            System.out.println("articlemanager est null");
            else
            {
                System.out.println("non null "+articlemanager.toString());
                if((articlemanager.Lister()).size()>0)
                { listArticle=articlemanager.Lister();
                System.out.println("la taille de la liste d'article:"+listArticle.size());
                }
 
            }
 
 
 
        return "success";
        }
}
le package pl contient :

InitConfig.java (il me sert dans index.jsp pr lancer l'action)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
package pl;
 
public class InitConfig {
 
public String execute(){
        return "success";
    }
}
la partie importante de mon fichier struts.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
    <package name="pl" namespace="/" extends="struts-default">
        <action name="execute" class="pl.InitConfig">
            <result name="success" type="redirect">lister.action</result>
        </action>
 
        <action name="lister" class="ma.tpmichemin.presentation.Article.ArticleAction"
            method="Lister">
            <result name="success">/WEB-INF/vues/VuesArticle/ListerArticle.jsp</result>
        </action>
 
    </package>
Mon fichier ApplicationContextDAO.xml
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
<a href="http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" target="_blank">http://www.springframework.org/schem...-beans-2.5.xsd</a>
<a href="http://www.springframework.org/schema/context" target="_blank">http://www.springframework.org/schema/context</a>
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
 
    <context:component-scan base-package="ma.tpmichemin.dao.Article" />
 
 
    <!-- Application context DAO layer -->
    <!-- General -->
    <bean id="article" class="ma.tpmichemin.dao.Article.ArticleDao">
        <property name="hibernateTemplate">
            <ref bean="hibernateTemplate" />
        </property>
    </bean>
 
    <bean id="marque" class="ma.tpmichemin.dao.Marque.MarqueDao">
        <property name="hibernateTemplate">
            <ref bean="hibernateTemplate" />
        </property>
    </bean>
 
    <!-- Hibernate Template -->
    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
        <property name="sessionFactory">
            <ref bean="sessionFactory" />
        </property>
    </bean>
    <!-- -->
 
    <!-- sessionFactory -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="configLocation">
            <value>classpath:hibernate.cfg.xml</value>
        </property>
        <!-- <property name="configurationClass"> <value>org.hibernate.cfg.AnnotationConfiguration</value> 
            </property> -->
        <property name="mappingResources">
            <list>
                <value>ma/tpmichemin/_model/Article.hbm.xml</value>
                <value>ma/tpmichemin/_model/Marque.hbm.xml</value>
            </list>
        </property>
    </bean>
 
    <!-- Gestion des transactions -->
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
 
    <bean id="transactionProxy" abstract="true"
        class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        <property name="transactionManager">
            <ref bean="transactionManager" />
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="insert*">PROPAGATION_REQUIRED</prop>
                <prop key="update*">PROPAGATION_REQUIRED</prop>
                <prop key="save*">PROPAGATION_REQUIRED</prop>
                <prop key="*">PROPAGATION_REQUIRED, readOnly</prop>
            </props>
        </property>
    </bean>
 
 
 
    <bean id="articlemanager" class="ma.tpmichemin.metier.Article.ArticleManager">
        <property name="article">
            <ref bean="article" />
        </property>
    </bean>
 
    <bean id="marquemanager" class="ma.tpmichemin.metier.Marque.MarqueManager">
        <property name="marque">
            <ref bean="marque" />
        </property>
    </bean>
 
 
 
    <bean id="IArticleManagerTarget" class="ma.tpmichemin.metier.Article.ArticleManager">
        <property name="article">
            <ref bean="article" />
        </property>
    </bean>
 
    <bean id="IArticleManager" parent="transactionProxy">
        <property name="target">
            <ref bean="IArticleManagerTarget" />
        </property>
        <property name="transactionAttributeSource">
            <bean
                class="org.springframework.transaction.annotation.AnnotationTransactionAttributeSource" />
        </property>
    </bean>
 
    <bean id="IMarqueManagerTarget" class="ma.tpmichemin.metier.Marque.MarqueManager">
        <property name="marque">
            <ref bean="marque" />
        </property>
    </bean>
 
    <bean id="IMarqueManager" parent="transactionProxy">
        <property name="target">
            <ref bean="IMarqueManagerTarget" />
        </property>
        <property name="transactionAttributeSource">
            <bean
                class="org.springframework.transaction.annotation.AnnotationTransactionAttributeSource" />
        </property>
    </bean>
 
</beans>
 
<!-- Remarque:pour les annotations: <property name="configurationClass"> 
    <value>org.hibernate.cfg.AnnotationConfiguration </value> </property> -->
le Web.xml :
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
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">
    <display-name>TP_MICHEMIN</display-name>
 
    <!-- Chargement des fichiers de spring -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            <!--/WEB-INF/ApplicationContextMetier.xml
            /WEB-INF/ApplicationContext.xml   -->
            /WEB-INF/ApplicationContextDao.xml
        </param-value>
    </context-param>
 
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!-- fin de chargement -->
 
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
 
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.action</url-pattern>
    </filter-mapping>
 
 
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>
La page index.jsp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=execute.action">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
La vue ListeArticle.jsp :
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
<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
 <%@ taglib prefix="s" uri="/struts-tags" %>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Lister Article</title>
</head>
<body>
 
<center><h2 style="FONT-SIZE: x-large; FONT-FAMILY: 'Times New Roman';"><b><i><u style="height:25px;text-align:center;color:#0080FF;width:25px;border-style:solid;border-color:#0080C0;margin:10px;border-width:thick;padding:10px;">Liste des articles</u></i></b></h2></center>
 
<s:if test="listArticle.size() > 0">
<table border="2px" cellpadding="12px" style="FONT-WEIGHT: bold; FONT-SIZE: large; FONT-FAMILY: 'Times New Roman';">
    <tr>
        <th style="FONT-STYLE: italic; background-color:#0080FF;">Libellé Article</th>
        <th style="FONT-STYLE: italic; background-color:#0080FF;">Description</th>
        <th style="FONT-STYLE: italic; background-color:#0080FF;">Prix</th>
        <th style="FONT-STYLE: italic; background-color:#0080FF;">Marque</th>
    </tr>
    <s:iterator value="listArticle">
        <tr>
            <td><s:property value="libArticle"/></td>
            <td><s:property value="descArticl" /></td>
            <td><s:property value="prixArticle" /></td>
            <td><s:property value="marque" /></td>
        </tr>
    </s:iterator>
</table>
</s:if>
<s:else>
<center><h2><i><b style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE: xx-large; COLOR: #ff0080;">La liste ne contient pas d'articles</b></i></h2></center>
</s:else>
<br/>
<br/>
 
</body>
</html>
Après exécution je reçois :

4 janv. 2012 01:45:01 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jdk1.7.0/bin/../jre/bin/client;C:/Program Files/Java/jdk1.7.0/bin/../jre/bin;C:/Program Files/Java/jdk1.7.0/bin/../jre/lib/i386;C:\Program Files\Java\jdk1.7.0\bin;C:\PROGRA~1\RATIONAL\RATION~1\NUTCROOT\bin;C:\PROGRA~1\RATIONAL\RATION~1\NUTCROOT\bin\x11;C:\PROGRA~1\RATIONAL\RATION~1\NUTCROOT\mksnt;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Rational\common;C:\Program Files\Rational\ClearQuest;C:\Program Files\Rational\Rose\TopLink\;C:\Program Files\Rational\Rational Test;C:\Program Files\Nmap;C:\Program Files\Nmap;C:\eclipse;
4 janv. 2012 01:45:02 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:TP_MICHEMIN82' did not find a matching property.
4 janv. 2012 01:45:02 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:TP_MICHEMIN' did not find a matching property.
4 janv. 2012 01:45:02 org.apache.coyote.http11.Http11Protocol init
INFO: Initialisation de Coyote HTTP/1.1 sur http-8080
4 janv. 2012 01:45:02 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 883 ms
4 janv. 2012 01:45:02 org.apache.catalina.core.StandardService start
INFO: Démarrage du service Catalina
4 janv. 2012 01:45:02 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.29
4 janv. 2012 01:45:02 org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
4 janv. 2012 01:45:02 org.springframework.web.context.ContextLoader initWebApplicationContext
INFO: Root WebApplicationContext: initialization started
4 janv. 2012 01:45:03 org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.web.context.support.XmlWebApplicationContext@4e63f9: display name [Root WebApplicationContext]; startup date [Wed Jan 04 01:45:03 WET 2012]; root of context hierarchy
4 janv. 2012 01:45:03 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/ApplicationContextDao.xml]
4 janv. 2012 01:45:03 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
INFO: Bean factory for application context [org.springframework.web.context.support.XmlWebApplicationContext@4e63f9]: org.springframework.beans.factory.support.DefaultListableBeanFactory@823177
4 janv. 2012 01:45:03 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@823177: defining beans [articleDao,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,article,marque,hibernateTemplate,sessionFactory,transactionManager,transactionProxy,articlemanager,marquemanager,IArticleManagerTarget,IArticleManager,IMarqueManagerTarget,IMarqueManager]; root of factory hierarchy
4 janv. 2012 01:45:04 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons
INFO: Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@823177: defining beans [articleDao,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,article,marque,hibernateTemplate,sessionFactory,transactionManager,transactionProxy,articlemanager,marquemanager,IArticleManagerTarget,IArticleManager,IMarqueManagerTarget,IMarqueManager]; root of factory hierarchy
4 janv. 2012 01:45:04 org.springframework.web.context.ContextLoader initWebApplicationContext
SEVERE: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'articleDao' defined in file [C:\workspaces\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\TP_MICHEMIN\WEB-INF\classes\ma\tpmichemin\dao\Article\ArticleDao.class]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
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.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required
at org.springframework.orm.hibernate3.support.HibernateDaoSupport.checkDaoConfig(HibernateDaoSupport.java:117)
at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
... 30 more
4 janv. 2012 01:45:04 org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception lors de l'envoi de l'évènement contexte initialisé (context initialized) à l'instance de classe d'écoute (listener) org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'articleDao' defined in file [C:\workspaces\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\TP_MICHEMIN\WEB-INF\classes\ma\tpmichemin\dao\Article\ArticleDao.class]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
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.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required
at org.springframework.orm.hibernate3.support.HibernateDaoSupport.checkDaoConfig(HibernateDaoSupport.java:117)
at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
... 30 more
4 janv. 2012 01:45:04 org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
4 janv. 2012 01:45:04 org.apache.catalina.core.StandardContext start
SEVERE: Erreur de démarrage du contexte [/TP_MICHEMIN] suite aux erreurs précédentes
4 janv. 2012 01:45:04 org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
4 janv. 2012 01:45:04 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/TP_MICHEMIN] registered the JBDC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
Quelqu'un saurait-il m'expliquer d'où peut venir le problème ?

Merci d'avance pour votre aide.