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 :

NullPointerException sur bean DAO


Sujet :

Spring Java

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Avril 2009
    Messages : 168
    Par défaut NullPointerException sur bean DAO
    Bonsoir,

    je reprends ce post parce que le précédent que j'ai écrit ne s'affiche plus:
    je suis novice dans le développement avec Spring. Pour me faire la main, je travaille sur un projet dont les technologies sont les suivantes: Spring, Hibernate, JPA, Tomcat. Actuellement, j'essaie de le déployer sur un serveur tomcat et à chaque fois, j'obtiens un NullPointerException sur le bean qui me permet d'accéder aux données.
    Classe InitializeDAO :
    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
     
    @Transactional
    public class InitializeDAO {
     
    	@PersistenceContext
    	private EntityManager fieldEM; 
     
    	public InitializeDAO() {
     
    	}
    	public Map<String,String> getRegions() { 
        	final Map<String,String> lRegions = new LinkedHashMap<String, String>();
        	CcRegion r = new CcRegion();
     
        	final Query query = fieldEM.createQuery("select p from Ccion p");
     
     
           for (Object p : query.getResultList()) { 
     
           	r =(CcRegion)p;
     
           	lRegions.put(r.getId(), r.getLibelle());
     
           }
     
            return lRegions;
        }
     
        public  Map<String,Map<String,String>> getVillesByRegion(){
     
        	final Map<String,String> lRegions = getRegions();
     
        	final Map<String,Map<String,String>> lVillesByRegion = new LinkedHashMap<String, Map<String,String>>();
     
        	CcVille v = new CcVille ();
     
        	if(!lRegions.isEmpty()){
     
        		Query query = fieldEM.createQuery("select p from CVle p where p.codeRon =?1");
     
        		for (Entry<String, String> entrySet : lRegions.entrySet()){
        			query.setParameter(1, entrySet.getKey());
        			final Map <String, String> lVilles = new LinkedHashMap<String, String>();
     
        			for (Object p : query.getResultList()) { 
     
        	        	v =(CcVille)p;
        	        	lVilles.put(v.getId(), v.getLibelle());	
        	        }
     
        			lVillesByRegion.put(entrySet.getKey(), lVilles);
        		}
        	}
     
            return lVillesByRegion;
        }
     
    	public EntityManager getFieldEM() {
    		return fieldEM;
    	}
    	public void setFieldEM(EntityManager fieldEM) {
    		this.fieldEM = fieldEM;
    	}
    }
    Pour qu'elle soit instanciée, je l'ai déclarée dans mon fichier applicationContext.xml, voici les déclarations que j'ai rajoutées:
    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
    <!-- transaction 
    	<tx:annotation-driven />-->
    	<tx:annotation-driven transaction-manager="txManager" /> 
      <bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
        <property name="entityManagerFactory" ref="entityManagerFactory" /> 
      </bean>
     
    	<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <property name="jpaVendorAdapter"> 
          		<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
            		<property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> 
            			<!-- 
            			<property name="showSql" value="true" /> 
            			<property name="generateDdl" value="true" /> 
            			--> 
          		</bean> 
        	</property> 
        </bean>
     
    	<bean id="fInitDAO" class="connect.services.InitializeDAO" /> 
     
    	<!-- datasource -->
    	  <bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" 
    		destroy-method="close" 
    		lazy-init="false" 
    		p:driverClassName="com.mysql.jdbc.Driver"
    		p:url="jdbc:mysql://xxxxxxxx/yyyyconnectdb"
    		p:username="aaaaaaa" 
    		p:password="bbbbb" 
    		p:initialSize="1" 
    		p:maxActive="50" 
    		p:maxIdle="10" 
    		p:maxWait="1000" 
    		p:defaultAutoCommit="false" 
    		p:removeAbandoned="true" 
    		p:removeAbandonedTimeout="60">
    	</bean>
    Puis je l'ai appelé directement dans la classe où j'en avais besoin, ici, il s'agit de la classe FillData:
    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
    @ManagedBean
    @SessionScoped
    public class FillData implements Serializable{
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	private String fRegion;
    	private String fVille;
     
    	private InitializeDAO fInitDAO;
     
    	private Map<String,String> fRegions = new LinkedHashMap<String, String>();
    	private Map<String,String> fVilles = new LinkedHashMap<String, String>();
     
    	private Map<String,Map<String,String>> fVillesParRegion = new HashMap<String, Map<String,String>>();
     
    	public FillData() {
    		super();
     
    		fRegions = fInitDAO.getRegions();		
    		fVillesParRegion = fInitDAO.getVillesByRegion();
    	}
     
     
    	public String getfRegion() {
    		return fRegion;
    	}
     
    	public void setfRegion(String fRegion) {
    		this.fRegion = fRegion;
    	}
     
    	public String getfVille() {
    		return fVille;
    	}
     
    	public void setfVille(String fVille) {
    		this.fVille = fVille;
    	}
     
    	public Map<String, String> getfRegions() {
    		return fRegions;
    	}
     
    	public void setfRegions(Map<String, String> fRegions) {
    		this.fRegions = fRegions;
    	}
     
    	public Map<String, String> getfVilles() {
    		return fVilles;
    	}
     
    	public void setfVilles(Map<String, String> fVilles) {
    		this.fVilles = fVilles;
    	}
     
    	public Map<String, Map<String, String>> getfVillesParRegion() {
    		return fVillesParRegion;
    	}
     
    	public void setfVillesParRegion(
    			Map<String, Map<String, String>> fVillesParRegion) {
    		this.fVillesParRegion = fVillesParRegion;
    	}
     
    	/***/
    	public void getVillesByRegion(){
    		if(fRegion !=null && !fRegion.equals(""))  
    			fVilles = fVillesParRegion.get(fRegion);  
    	}
     
     
    	public InitializeDAO getfInitDAO() {
    		return fInitDAO;
    	}
     
     
    	public void setfInitDAO(InitializeDAO fInitDAO) {
    		this.fInitDAO = fInitDAO;
    	}
    je joins à mon post, les logs générés à l'éxécution de l'appli (voir en pj)
    Pourrez vous avoir une idée du problème?
    Je vous remercie d'avance pour vos réactions
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. NullPointerException sur un bean DAO
    Par lekonquerant dans le forum Spring
    Réponses: 2
    Dernier message: 24/10/2014, 18h05
  2. [Framework] NullPointerException sur DAOs injectés
    Par TheVirus2013 dans le forum Spring
    Réponses: 7
    Dernier message: 03/06/2010, 14h05
  3. [Tableau] NullPointerException sur les tableaux
    Par zsoh dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 18/01/2010, 17h42
  4. Filtres successifs sur un DAO.Recordset
    Par timoth dans le forum VBA Access
    Réponses: 5
    Dernier message: 07/03/2008, 13h13
  5. NullPointerException sur un RTPManager?
    Par innosang dans le forum Multimédia
    Réponses: 2
    Dernier message: 30/04/2007, 14h10

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