Bonjour,

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
65
66
 
@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 XML : 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
83
 
@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;
	}
Pourrez vous avoir une idée du problème?
Je vous remercie d'avance pour vos réactions