IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Spring+Ibatis : Problème de chargement du contexte


Sujet :

Spring Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Par défaut Spring+Ibatis : Problème de chargement du contexte
    Bonjour,

    Je suis totalement débutante en Spring.
    Je veux l'utiliser avec Ibatis, seulement quand j'essaie d'accéder aux données, j'ai l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    java.lang.IllegalArgumentException: No SqlMapClient specified
    	at org.springframework.util.Assert.notNull(Assert.java:112)
    	at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:163)
    	at org.springframework.orm.ibatis.SqlMapClientTemplate.insert(SqlMapClientTemplate.java:367)
    	at com.proto.ged.access.dao.MadGroupBasketDAOImpl.insert(MadGroupBasketDAOImpl.java:42)
    Ma classe d'implémentation a la tête suivante. J'ai décomposé les lignes du insert pour savoir quelle ligne déclenche l'erreur et c'est le insert.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class MadGroupBasketDAOImpl extends SqlMapClientDaoSupport implements MadGroupBasketDAO {
     
        /** ...  */
        public MadGroupBasketDAOImpl() {
            super();
        }
     
        /** ...  */
        public void insert(MadGroupBasket record) {
        	SqlMapClientTemplate template = getSqlMapClientTemplate();
        	template.insert("MAD_GROUP_BASKET.ibatorgenerated_insert", record);
        }
    }
    Mon application contexte :
    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"?>
    <!DOCTYPE beans SYSTEM "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
     
    	<!-- base de données -->
    	<bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    		<property name="driverClassName" value="oracle.jdbc.OracleDriver" />
    		<property name="url" value="jdbc:oracle:thin:@10.226.175.175:1521:LDGLY000" />
    		<property name="username" value="docsadm" />
    		<property name="password" value="docsadm" /> 
    	</bean>
     
    	<!-- bean d'accès à madGroupBasket -->
    	<bean id="madGroupBasketImpl" class="com.proto.ged.access.dao.MadGroupBasketDAOImpl">
    		<property name="sqlMapClient">
                <ref bean="mySqlMapClient"/>
            </property>
    	</bean>
     
    	<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
            <property name="sqlMapClient">
                <ref bean="mySqlMapClient"/>
            </property>
        </bean>
     
     
    	<!-- SqlMap -->
    	<bean id="mySqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
    		<property name="configLocation" value="sqlMapConfig.xml" />
    		<property name="dataSource" ref="myDataSource"/>
    	</bean>
     
    	<!-- transaction manager -->
    	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    		<property name="dataSource" ref="myDataSource"/>
    	</bean>
    </beans>
    Ayant essayé énormement de choses, je suis ouverte à toute suggestion.
    Merci d'avance si vous avez une idée.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Par défaut Problème de chargement de mon contexte
    Bon, en fait, je ne chargeais pas le ApplicationContext dans mon Web.xml (je vous avais dit que je débute tout juste !!).

    Mais, cela ne fonctionne pas car j'ai maintenant une erreur grave au chargement de mon Listener

    Voici mon web-xml (j'intègre Spring dans une application existante):
    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!--
      Copyright 2004 The Apache Software Foundation
     
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
     
          http://www.apache.org/licenses/LICENSE-2.0
     
      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
    -->
     
    <!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">
     
    <web-app>
     
        <display-name>Ged Generique</display-name>
        <description>
          Ged Generique 1.0
        </description>
     
      <servlet>
        <servlet-name>servlet/mad</servlet-name>
        <servlet-class>com.grassavoye.mad.MadServlet</servlet-class>
        <init-param>
          <param-name>com.grassavoye.mad.config</param-name>
          <param-value>com/grassavoye/prop/mad.prop</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet>
        <servlet-name>servlet/dispatcher</servlet-name>
        <servlet-class>com.grassavoye.gmo.client.servlet.dispatcher.DocDispatcherSrv</servlet-class>
        <init-param>
          <param-name>com.grassavoye.mad.config</param-name>
          <param-value>com/grassavoye/prop/mad.prop</param-value>
        </init-param>
      </servlet>
      <servlet>
        <servlet-name>servlet/admin</servlet-name>
        <servlet-class>com.grassavoye.gmo.client.servlet.admin.GmoAdminSrv</servlet-class>
        <init-param>
          <param-name>com.grassavoye.mad.config</param-name>
          <param-value>com/grassavoye/prop/mad.prop</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet>
        <servlet-name>servlet/madEngine</servlet-name>
        <servlet-class>com.grassavoye.gmo.client.servlet.mad.MadEngineSrv</servlet-class>
        <init-param>
          <param-name>com.grassavoye.mad.config</param-name>
          <param-value>com/grassavoye/prop/mad.prop</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet>
        <servlet-name>servlet/test</servlet-name>
        <servlet-class>com.grassavoye.gmo.test.TestSrv</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>servlet/mad</servlet-name>
        <url-pattern>/mad</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>servlet/dispatcher</servlet-name>
        <url-pattern>/dispatch</url-pattern>
      </servlet-mapping>  
     <servlet-mapping>
        <servlet-name>servlet/admin</servlet-name>
        <url-pattern>/admin</url-pattern>
      </servlet-mapping>
       <servlet-mapping>
        <servlet-name>servlet/madEngine</servlet-name>
        <url-pattern>/madEngine</url-pattern>
      </servlet-mapping>
       <servlet-mapping>
        <servlet-name>servlet/test</servlet-name>
        <url-pattern>/test</url-pattern>
      </servlet-mapping>
     
      <!-- le chargeur du contexte spring de l'application -->
      <listener>
    	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      <context-param>
    	<param-name>contextConfigLocation</param-name>
    	<param-value>classpath:/applicationContext.xml</param-value>
      </context-param>
    </web-app>
    Voici mon applicationContexte :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans SYSTEM "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
     
    	<!-- base de données -->
    	<bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    		<property name="driverClassName" value="oracle.jdbc.OracleDriver" />
    		<property name="url" value="jdbc:oracle:thin:@10.226.175.175:1521:LDGLY000" />
    		<property name="username" value="docsadm" />
    		<property name="password" value="docsadm" /> 
    	</bean>
     
    	<!-- SqlMap -->
    	<bean id="mySqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
    		<property name="configLocation" value="sqlMapConfig.xml" />
    		<property name="dataSource" ref="myDataSource"/>
    	</bean>
     
    	<!-- bean d'accès à madGroupBasket -->
    	<bean id="madGroupBasketImpl" class="com.proto.ged.access.dao.MadGroupBasketDAOImpl">
    		<property name="sqlMapClient">
                <ref bean="mySqlMapClient"/>
            </property>
    	</bean>
     
    	<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
            <property name="sqlMapClient">
                <ref bean="mySqlMapClient"/>
            </property>
        </bean>
     
    	<!-- transaction manager -->
    	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    		<property name="dataSource" ref="myDataSource"/>
    	</bean>
    </beans>
    Si je supprime tout sauf le bean myDataSource, je n'ai pas d'erreur au chargement !! Et si j'ajoute à ça uniquement le bean mySqlMapClient, ça plante.

    Voici le code de mon SqlMapConfig :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="UTF-8" ?>
     
    <!DOCTYPE sqlMapConfig
        PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
        "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
     
    <sqlMapConfig>
    	<sqlMap resource="MAD_GROUP_BASKET_SqlMap.xml" />
    </sqlMapConfig>
    Si vous avez une idée, je suis toujours preneuse.
    Merci d'avance

Discussions similaires

  1. [Batch] Optimisation du chargement du contexte Spring
    Par freesket dans le forum Spring
    Réponses: 0
    Dernier message: 17/01/2013, 15h19
  2. Erreur de chargement du context Spring
    Par steph_stive dans le forum Hibernate
    Réponses: 1
    Dernier message: 23/08/2011, 06h53
  3. [Batch] spring/quartz probléme du contexte
    Par mahdi-26 dans le forum Spring
    Réponses: 4
    Dernier message: 08/06/2011, 15h41
  4. Réponses: 5
    Dernier message: 05/05/2011, 19h31
  5. Problème de chargement d'application Spring sous ubuntu/Tomcat 6
    Par sebounetino dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 10/12/2009, 14h23

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