Bonjour

je travaille avec Eclipse et ai créé un enterprise application project déployé sous JBoss

Voici la hierarchie de mon projet

Nom : Capture d’écran 2014-10-29 à 22.28.50.png
Affichages : 195
Taille : 130,4 Ko

J'ai un EJB stateless LibrarySessionBean dans le module EJBTutorialEJB où il y a des logs (log4j)

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
 
package com.tutorialspoint.sessionbean.stateless;
 
import java.util.ArrayList;
import java.util.List;
 
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.ejb.Local;
import javax.ejb.LocalBean;
import javax.ejb.Remote;
import javax.ejb.Stateless;
 
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
 
/**
 * Session Bean implementation class LibrarySessionBean
 */
@Stateless(name = "LibrarySessionBean")
@Local(LibrarySessionBeanLocal.class)
@Remote(LibrarySessionBeanRemote.class)
@LocalBean
public class LibrarySessionBean {
 
	private List<String> bookShelf;
 
	static Logger log = LogManager.getLogger(LibrarySessionBean.class.getName());
 
	/**
         * Default constructor.
         */
	public LibrarySessionBean() {
		log.info("object this.toString=" + this.toString());
		log.info("constructeur LibrarySessionBean  appele");
		bookShelf = new ArrayList<String>();
	}
 
 
 
	public void addBook(String bookname) {
		log.info("object this.toString=" + this.toString());
		log.info("addbook appele");
		bookShelf.add(bookname);
	}
 
 
 
	public List<String> getBooks() {
		return bookShelf;
	}
 
 
 
	@PreDestroy
	public void givingEndState() {
		log.info("givingEndState object this.toString=" + this.toString());
		for (String book : bookShelf) {
			log.info("book found =" + book);
		}
	}
 
 
	@PostConstruct
	public void givingStartState() {
		log.info("givingStartState object this.toString=" + this.toString());
	}
 
 
}

Mon programme principal Main dans le module EJBTutorialClient instancie 15 thread qui appellent chacun une servlet ServletCallSessionBean (qui se trouvent dans le module EJBTutorialWeb). Ces servlet ont chacune un attribut @EJB LibrarySessionBean

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
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
 
package com.tutorialspoint.servlet;
 
import java.io.IOException;
import java.io.PrintWriter;
 
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
 
import com.tutorialspoint.sessionbean.stateless.LibrarySessionBeanLocal;
 
@WebServlet(name="ServletCallSessionBean", urlPatterns={"/test"})
public class ServletCallSessionBean extends HttpServlet {
 
	@EJB(beanName = "LibrarySessionBean")
	private LibrarySessionBeanLocal monBean;
 
	static Logger log = LogManager.getLogger(ServletCallSessionBean.class.getName());
 
	protected void processRequest(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html;charset=UTF-8");
		//PrintWriter out = response.getWriter();
		monBean.getBooks();
		log.info("DEBUT ATTENTE");
		try {
			Thread.sleep(300000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		log.info("FIN ATTENTE");
		PrintWriter out = new PrintWriter (response.getOutputStream());
		try {
			out.println("<html>");
			out.println("<head>");
			out.println("<title>Servlet MaServlet</title>");
			out.println("</head>");
			out.println("<body>");
			out.println("</body>");
			out.println("</html>");
		} finally {
			out.close();
		}
 
	}
 
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		processRequest(request, response);
	}
 
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		processRequest(request, response);
 
	}
 
	@Override
	public String getServletInfo() {
		return "Ma servlet de test";
	}
 
 
}
Voici un extrait de mon programme principal
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
 
	private void startThreads() {
		for (int i = 0; i < threadCount-1; i++) {
			thread[i] = new TestThread(""+ i, ctx);
		}
	}
 
	private void stopThreads() {
		for (int i = 0; i < threadCount-1; i++) {
			thread[i].interrupt();
		}
	}
 
	private void testStatelessEjb() {
		startThreads();
 
		try {
 
			int choice = 1;
			String viewClassName = LibrarySessionBeanRemote.class.getName();
			LibrarySessionBeanRemote libraryBean = (LibrarySessionBeanRemote) ctx.lookup("EJBTutorial/EJBTutorialEJB//LibrarySessionBean!"+ viewClassName);
			System.out.print("libraryBean.toString: " + libraryBean.toString());
			while (choice != 2) {
				String bookName;
				showGUI();
				String strChoice = brConsoleReader.readLine();
				choice = Integer.parseInt(strChoice);
				if (choice == 1) {
					System.out.print("Enter book name: ");
					bookName = brConsoleReader.readLine();
					libraryBean.addBook(bookName);
				} else if (choice == 2) {
					break;
				}
			}
			List<String> booksList = libraryBean.getBooks();
			System.out.println("Book(s) entered so far: " + booksList.size());
			for (int i = 0; i < booksList.size(); ++i) {
				System.out.println((i + 1) + ". " + booksList.get(i));
			}
 
			LibrarySessionBeanRemote libraryBean1 = (LibrarySessionBeanRemote) ctx.lookup("EJBTutorial/EJBTutorialEJB//LibrarySessionBean!"
					+ viewClassName);
			List<String> booksList1 = libraryBean1.getBooks();
			System.out.println("***Using second lookup to get library stateless object***");
			System.out.println("Book(s) entered so far: " + booksList1.size());
			for (int i = 0; i < booksList1.size(); ++i) {
				System.out.println((i + 1) + ". " + booksList1.get(i));
			}
		} catch (Exception e) {
			System.out.println(e.getMessage());
			e.printStackTrace();
		} finally {
			try {
				stopThreads();
				brConsoleReader.readLine();
				if (brConsoleReader != null) {
					brConsoleReader.close();
				}
			} catch (IOException ex) {
				System.out.println(ex.getMessage());
			}
		}
 
	}
Mes logs sont de l'API log4j. Voici le fichier log4j2.xml: 2 sorties: la sortie standard et un fichier de log app.log
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
 
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="WARN">
  <appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
 
    <File name="MyFile" fileName="logs/app.log">
        <PatternLayout pattern="%d{yyyy-mm-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </File>             
  </appenders>
 
  <loggers>     
    <root level="debug">
      <appender-ref ref="Console" level="info"/>
       <appender-ref ref="MyFile" level="info"/>
    </root>    
  </loggers>
</configuration>
Le problème est le suivant: quand j'éxécute mon programme client Main tous les logs de mon EJB se retrouvent dans les logs de mon fichier de log app.log sauf ceux de la méthode @PreDestroy

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
 
2014-37-29 21:37:22.928 [http-localhost/127.0.0.1:8080-14] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@5eb83295
2014-37-29 21:37:22.928 [http-localhost/127.0.0.1:8080-1] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@1449d578
2014-37-29 21:37:22.927 [http-localhost/127.0.0.1:8080-4] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@5c340d7d
2014-37-29 21:37:22.924 [http-localhost/127.0.0.1:8080-13] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@6362f371
2014-37-29 21:37:22.962 [http-localhost/127.0.0.1:8080-14] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - constructeur LibrarySessionBean  appele
2014-37-29 21:37:22.927 [http-localhost/127.0.0.1:8080-10] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@5e9675b9
2014-37-29 21:37:22.927 [http-localhost/127.0.0.1:8080-11] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@1bfa50cf
2014-37-29 21:37:22.927 [http-localhost/127.0.0.1:8080-3] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@612e2907
2014-37-29 21:37:22.924 [http-localhost/127.0.0.1:8080-8] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@6d454ea4
2014-37-29 21:37:22.928 [http-localhost/127.0.0.1:8080-2] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@5bde49b1
2014-37-29 21:37:22.924 [http-localhost/127.0.0.1:8080-7] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@704ecb9a
2014-37-29 21:37:22.924 [http-localhost/127.0.0.1:8080-6] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@45192510
2014-37-29 21:37:22.924 [http-localhost/127.0.0.1:8080-12] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@21fabc2
2014-37-29 21:37:22.927 [http-localhost/127.0.0.1:8080-5] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@77ddf58a
2014-37-29 21:37:22.924 [http-localhost/127.0.0.1:8080-9] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@29dd2d9e
2014-37-29 21:37:22.962 [http-localhost/127.0.0.1:8080-13] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - constructeur LibrarySessionBean  appele
2014-37-29 21:37:22.962 [http-localhost/127.0.0.1:8080-1] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - constructeur LibrarySessionBean  appele
2014-37-29 21:37:22.963 [http-localhost/127.0.0.1:8080-14] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - givingStartState object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@5eb83295
2014-37-29 21:37:22.963 [http-localhost/127.0.0.1:8080-10] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - constructeur LibrarySessionBean  appele
2014-37-29 21:37:22.963 [http-localhost/127.0.0.1:8080-11] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - constructeur LibrarySessionBean  appele
2014-37-29 21:37:22.962 [http-localhost/127.0.0.1:8080-4] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - constructeur LibrarySessionBean  appele
2014-37-29 21:37:22.963 [http-localhost/127.0.0.1:8080-8] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - constructeur LibrarySessionBean  appele
2014-37-29 21:37:22.963 [http-localhost/127.0.0.1:8080-2] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - constructeur LibrarySessionBean  appele
2014-37-29 21:37:22.963 [http-localhost/127.0.0.1:8080-7] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - constructeur LibrarySessionBean  appele
2014-37-29 21:37:23.014 [http-localhost/127.0.0.1:8080-9] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - constructeur LibrarySessionBean  appele
2014-37-29 21:37:22.963 [http-localhost/127.0.0.1:8080-6] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - constructeur LibrarySessionBean  appele
2014-37-29 21:37:22.963 [http-localhost/127.0.0.1:8080-12] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - constructeur LibrarySessionBean  appele
2014-37-29 21:37:22.963 [http-localhost/127.0.0.1:8080-5] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - constructeur LibrarySessionBean  appele
2014-37-29 21:37:22.963 [http-localhost/127.0.0.1:8080-3] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - constructeur LibrarySessionBean  appele
2014-37-29 21:37:23.015 [http-localhost/127.0.0.1:8080-8] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - givingStartState object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@6d454ea4
2014-37-29 21:37:23.014 [http-localhost/127.0.0.1:8080-1] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - givingStartState object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@1449d578
2014-37-29 21:37:23.014 [http-localhost/127.0.0.1:8080-13] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - givingStartState object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@6362f371
2014-37-29 21:37:23.015 [http-localhost/127.0.0.1:8080-3] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - givingStartState object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@612e2907
2014-37-29 21:37:23.015 [http-localhost/127.0.0.1:8080-5] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - givingStartState object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@77ddf58a
2014-37-29 21:37:23.015 [http-localhost/127.0.0.1:8080-12] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - givingStartState object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@21fabc2
2014-37-29 21:37:23.015 [http-localhost/127.0.0.1:8080-6] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - givingStartState object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@45192510
2014-37-29 21:37:23.015 [http-localhost/127.0.0.1:8080-9] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - givingStartState object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@29dd2d9e
2014-37-29 21:37:23.015 [http-localhost/127.0.0.1:8080-10] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - givingStartState object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@5e9675b9
2014-37-29 21:37:23.015 [http-localhost/127.0.0.1:8080-11] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - givingStartState object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@1bfa50cf
2014-37-29 21:37:23.015 [http-localhost/127.0.0.1:8080-4] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - givingStartState object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@5c340d7d
2014-37-29 21:37:23.015 [http-localhost/127.0.0.1:8080-2] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - givingStartState object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@5bde49b1
2014-37-29 21:37:23.015 [http-localhost/127.0.0.1:8080-7] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - givingStartState object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@704ecb9a
2014-37-29 21:37:23.122 [http-localhost/127.0.0.1:8080-8] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - DEBUT ATTENTE
2014-37-29 21:37:23.122 [http-localhost/127.0.0.1:8080-14] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - DEBUT ATTENTE
2014-37-29 21:37:23.122 [http-localhost/127.0.0.1:8080-6] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - DEBUT ATTENTE
2014-37-29 21:37:23.127 [http-localhost/127.0.0.1:8080-11] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - DEBUT ATTENTE
2014-37-29 21:37:23.125 [http-localhost/127.0.0.1:8080-12] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - DEBUT ATTENTE
2014-37-29 21:37:23.122 [http-localhost/127.0.0.1:8080-3] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - DEBUT ATTENTE
2014-37-29 21:37:23.122 [http-localhost/127.0.0.1:8080-7] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - DEBUT ATTENTE
2014-37-29 21:37:23.122 [http-localhost/127.0.0.1:8080-9] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - DEBUT ATTENTE
2014-37-29 21:37:23.122 [http-localhost/127.0.0.1:8080-1] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - DEBUT ATTENTE
2014-37-29 21:37:23.122 [http-localhost/127.0.0.1:8080-2] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - DEBUT ATTENTE
2014-37-29 21:37:23.122 [http-localhost/127.0.0.1:8080-5] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - DEBUT ATTENTE
2014-37-29 21:37:23.122 [http-localhost/127.0.0.1:8080-10] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - DEBUT ATTENTE
2014-37-29 21:37:23.122 [http-localhost/127.0.0.1:8080-13] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - DEBUT ATTENTE
2014-37-29 21:37:23.122 [http-localhost/127.0.0.1:8080-4] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - DEBUT ATTENTE
2014-37-29 21:37:37.456 [EJB default - 1] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@612e2907
2014-37-29 21:37:37.459 [EJB default - 1] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - addbook appele
2014-37-29 21:37:45.239 [EJB default - 2] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - object this.toString=com.tutorialspoint.sessionbean.stateless.LibrarySessionBean@5c340d7d
2014-37-29 21:37:45.240 [EJB default - 2] INFO  com.tutorialspoint.sessionbean.stateless.LibrarySessionBean - addbook appele
2014-42-29 21:42:23.130 [http-localhost/127.0.0.1:8080-2] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - FIN ATTENTE
2014-42-29 21:42:23.131 [http-localhost/127.0.0.1:8080-10] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - FIN ATTENTE
2014-42-29 21:42:23.130 [http-localhost/127.0.0.1:8080-14] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - FIN ATTENTE
2014-42-29 21:42:23.131 [http-localhost/127.0.0.1:8080-13] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - FIN ATTENTE
2014-42-29 21:42:23.129 [http-localhost/127.0.0.1:8080-6] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - FIN ATTENTE
2014-42-29 21:42:23.130 [http-localhost/127.0.0.1:8080-11] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - FIN ATTENTE
2014-42-29 21:42:23.130 [http-localhost/127.0.0.1:8080-3] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - FIN ATTENTE
2014-42-29 21:42:23.130 [http-localhost/127.0.0.1:8080-7] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - FIN ATTENTE
2014-42-29 21:42:23.130 [http-localhost/127.0.0.1:8080-12] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - FIN ATTENTE
2014-42-29 21:42:23.130 [http-localhost/127.0.0.1:8080-9] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - FIN ATTENTE
2014-42-29 21:42:23.129 [http-localhost/127.0.0.1:8080-8] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - FIN ATTENTE
2014-42-29 21:42:23.130 [http-localhost/127.0.0.1:8080-1] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - FIN ATTENTE
2014-42-29 21:42:23.131 [http-localhost/127.0.0.1:8080-4] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - FIN ATTENTE
2014-42-29 21:42:23.131 [http-localhost/127.0.0.1:8080-5] INFO  com.tutorialspoint.servlet.ServletCallSessionBean - FIN ATTENTE
A croire que la méthode @PreDestroy n'est pas appelée. Pourtant quand je remplace ces logs par des System.out.println et que je stoppe JBoss ces logs apparaissent (au moment seulement où je stoppe le serveur)

D'autre part dans mes logs du fichier server.log, il n'y a que les traces des appels à mon EJB depuis le module client. (les logs de mon EJB), comme si tous les autres logs n'existaient pas

Auriez vous une idée ? Merci d'avance pour vos réponses.