Bonjour je dois réaliser une appli J2EE avec comme serveur d'appli JBOSS 5

J'utilise l'IDE netbeans et suis un débutant complet avec JBOSS. Mon projet est composé d'un EAR qui référence un Jar pour les beans (Session beans, entity beans...) et d'un war pour la web app.

Dans le jar, j'utilise des ejb 3.0 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
package org.lesson.integration;
 
import javax.ejb.Remote;
import org.lesson.model.Trainee;
 
@Remote
public interface TraineeDAORemote {
 
    public void createTrainee(Trainee t);
    public void deleteTrainee(Trainee t);
    public void updateTrainee(Trainee t);
 
}
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
 
 
 
package org.lesson.integration;
 
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.lesson.model.Trainee;
 
@Stateless(name = "test")
public class TraineeDAOImpl implements TraineeDAORemote{
 
    @PersistenceContext(unitName="Lesson-ejbPU")
    private EntityManager em;
 
    public void createTrainee(Trainee t) {
        em.persist(t);
    }
 
    public void deleteTrainee(Trainee t) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
 
    public void updateTrainee(Trainee t) {
        throw new UnsupportedOperationException("Not supported yet.");
    } 
 
}
qui travaillent avec un entity bean Trainee. Mon but est de tester mon session bean TraineeDAOImpl pour vérifier que la persistence fonctionne (sûrement pas d'ailleurs mais bon...). Je comptais me servir d'une servlet pour tester mon bean donc dans mon war j'ai créé une servlet nommée TestServlet

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
 
 
 
package test;
 
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.lesson.integration.TraineeDAOImpl;
import org.lesson.integration.TraineeDAORemote;
import org.lesson.model.Trainee;
 
 
public class TestServlet extends HttpServlet {
 
    @EJB(name="test")
    private TraineeDAORemote traineeDAO;
 
 
    @Override
    protected void doGet(HttpServletRequest request,
	HttpServletResponse response) throws ServletException,
	IOException {
 
                 Trainee t = new Trainee();
                 t.setName("toto");
                 t.setSurname("tata");
                 t.setBirthdate(new Date());
                 t.setPassword("rien");
                 traineeDAO.createTrainee(t);
 
 
	         response.setContentType("text/html;charset=UTF-8");
                 PrintWriter out = response.getWriter();
                 out.println("<html>");
                 out.println("<head>");
                 out.println("<title>Servlet TestServlet</title>");
                 out.println("</head>");
                 out.println("<body>");
                 out.println(traineeDAO.getMessage());
                 out.println("</body>");
                 out.println("</html>");                
         }
quand je déplois mon ear j'ai l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
 
java.lang.IllegalStateException: Resolution should not happen via injection container
pouvez-vous me donner un coup de main svp ? merci