Désolé, je n'avais pas initialisé la variable c
Bonjour,
je débute en Servlets, et je bloque sur l'utilisation des servletContexts.
Je veux initier des objets (threads) dans un ServletContextListener. Et je veux y accéder à partir de mes servlets.
dans mon listener, j'ai
déjà, le sysout me sort un "attribut = null". Pas bon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 @Override public void contextInitialized(ServletContextEvent event) { ServletContext sc = event.getServletContext(); thread = new Thread(new Counter()); thread.start(); sc.setAttribute("com.airbus.mcctls.counter", c); System.out.println("attribut = "+sc.getAttribute("com.airbus.mcctls.counter")); }
ensuite, dans ma servlet j'ai
Evidement, dans ma servlet, j'ai null. J'ai vérifié que l'adresse de sc et getServletContext() pointent sur le meme objet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub PrintWriter out = response.getWriter(); try { Counter c = (Counter)getServletContext().getAttribute("counter"); out.println("the current count is "+c.i); } catch (Exception e) { e.printStackTrace(out); } }
est ce que qq peut me débloquer?
merci
Partager