6
votes

Spring BeanCreationException Exception confusion sur la cartographie

essayer d'intégrer hibernate et printemps, j'ai couru dans cette erreur

sévère: l'initialisation du contexte a échoué org.springframework.beans.Factory.BeancreationException code>: erreur de création de haricot avec nom ' org.springframework.web.servlet.mvc.nannotation.defullinghannotationHandlermapping code>': initialisation de la bean a échoué; Exception imbriquée est java.lang.illegalstateException code>: ne peut pas mapper le gestionnaire ' org.me.spring.hib.school.web.schoolcontroller # 0 code>' to url chemin [ / ALLSCHOOLS CODE>]: Il y a déjà un gestionnaire de type de type [Classe org.me.spring.hib.school.web.schoolcontroller code>] mappé. P> blockQuote>

Mon contrôleur ressemble à p> xxx pré>

J'ai injecté la mise en œuvre DAO dans l'application Context Fichier P>

    <context:component-scan base-package="org.me.spring.hib.school.web" />

    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> 
       <property name="sessionFactory" >
           <ref bean="sessionFactory" />
       </property>    
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
       <property name="dataSource">
          <ref local="dataSource"/>
       </property>
       <property name="annotatedClasses">
            <list>
                <value>org.me.spring.hib.school.domain.School</value>
                <value>org.me.spring.hib.school.domain.Teacher</value>
                <value>org.me.spring.hib.school.domain.Student</value>
            </list>
       </property>


       <property name="hibernateProperties">
        <props>
                <prop key="hibernate.dialect"> org.hibernate.dialect.HSQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">create</prop>
        </props>
       </property>

   </bean>

    <bean id="schoolDao" class="org.me.spring.hib.school.dao.SchoolDAOImpl">
        <property name="hibernateTemplate" ref="hibernateTemplate" />
    </bean>


    <bean  class="org.me.spring.hib.school.web.SchoolController" >
            <property name="schoolDao" ref="schoolDao" />
    </bean>


0 commentaires

3 Réponses :


22
votes

Ceci se produit parce que vous avez à la fois xxx

et xxx

la première ligne découvrira et enregistrez un Schoolcontroller Pour vous. En déclarant explicitement un autre, vous obtenez un duplicata, et l'URL-Mappage vous affrontera.

Vous devez supprimer le ou supprimer le Définitions de haricots explicites pour le contrôleur et le DAO. Si vous faites ce dernier, vous devrez alors utiliser la mise en forme pour injecter leurs dépendances.


0 commentaires

0
votes

J'ai fait face à un problème similaire. J'ai défini la classe de contrôleur avec "@Controller" et également dans le fichier printring-config.xml comme un haricot et j'ai injecté les dépendances.

Cela causait le problème. @Controller définit le haricot et encore une fois, le haricot défini dans le fichier XML redéfinit les dépendances. J'ai essayé de modifier la dépendance et j'ai supprimé cela comme un haricot du fichier XML. Puis cela a fonctionné.


0 commentaires

0
votes

ou vous pouvez mentionner dans votre XML et supprimez la

partie.

Si vous êtes à l'aise avec des notations XML.


0 commentaires