Bonjour,
j'ai une servlet qui appelle un singleton :

Ma servlet
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
 
public class FindAdministratorForumServlet extends HttpServlet {
 
	/**
         * 
         */
	private static final long serialVersionUID = 1L;
 
	// ======================================
	// = Entry point method =
	// ======================================
	@Override
	protected void service(final HttpServletRequest request,
			final HttpServletResponse response) throws ServletException,
			IOException {
		final int rows=3;
 
		int page = Integer.parseInt(request.getParameter("page"));
 
		List<Topic> discussionList = ListHandlerService.getForumTopics(page);
Mon singleton :
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
 
package service;
 
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
 
import javax.ejb.EJB;
 
import sessionbean.TopicService;
 
import entitybean.Topic;
 
 
 
public class ListHandlerService {
 
	private final static int rows=3;
 
    /** L'instance statique */
    private static ListHandlerService instance;
    /** objet pour la synchronisation. 
     * j'ajoute deux "soulignés" (__) au nom de l'attribut car il n'a
     * qu'un intérêt purement technique.
     */
    private static Object objetSynchrone__;
 
    private static List<Topic> listTopic;
 
 
	@EJB
	private static TopicService discussionService;
 
    /** Récupère l'instance unique de la class Singleton.
    * Remarque : le constructeur est rendu inaccessible
    */
    public static ListHandlerService getInstance() {
        if (null == instance) { // Premier appel
            synchronized(objetSynchrone__) {
                if (null == instance) {
                    instance = new ListHandlerService();
                }
            }
        }
        return instance;
    }
 
    /** Constructeur redéfini comme étant privé pour interdire
    * son appel et forcer à passer par la méthode
    */
    private ListHandlerService() {
    }
 
    public static List<Topic> getForumTopics(int page) {
    	int i = 0;
		Topic topic;
		LinkedList<Topic> result = new LinkedList<Topic>();
    	if (page==1) {
 
    		listTopic = discussionService.getForumTopics();
    		ListIterator<Topic> listIterator = listTopic.listIterator();
 
    		while (listIterator.hasNext() && (i< rows)) {
    			topic = listIterator.next();
    			result.add(topic);
    			i++;
    		}
    	} else {
    		ListIterator<Topic> listIterator = listTopic.listIterator();
    		while (listIterator.hasNext() && (i< rows*(page-1))) { 
    			listIterator.hasNext();
    			i++;
    		}
    		while (listIterator.hasNext() && (i< rows*page)) {
    			topic = listIterator.next();
    			result.add(topic);
    			i++;
    		}
    	}
    	return result;
 
    }
 
    public static int getSize() {
    	return listTopic.size();
    }
 
 
}
Dans mon singleton qui est un objet JAVA pur, l'injection de mon EJB par l'annotation @EJB ne semble pas marcher. En effet à l'éxécution, "discussionService" qui devrait etre injecté et initialisé est null.
Pouvez-vous me venir en aide ? merci