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

Développement Web en Java Discussion :

Problème d'injection


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 56
    Par défaut Problème d'injection
    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.

  2. #2
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    Bonjour,

    Je n'ai pas pris la peine d'analyser tous ces fichiers mais j'ai néanmoins pu voir au début d'un des fichiers XML que celui-ci n'est pas valide car il est mal formé. Ca devrait être facile à trouver...
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

Discussions similaires

  1. problème d'injection @EJB
    Par Damien2888 dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 20/02/2009, 13h24
  2. Réponses: 10
    Dernier message: 16/08/2008, 00h51
  3. [Oracle] problème d'injection SQL
    Par matoon dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/03/2008, 10h43
  4. Réponses: 3
    Dernier message: 06/06/2007, 15h21
  5. problème d'injection (?) d'un session bean EJB3 dans une servlet
    Par toomsounet dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 11/03/2007, 01h26

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