Bonjour,
Je suis tout nouveau dans Glassfish et la technologie EJB en général. Je suis en train d'essayer de reproduire l'exemple présenté à la fin de l'ouvrage "EJB 3 des concepts à l'écriture de code" (très bien au passage).
J'ai récupéré le code sur le site de Dunod pour faire toutes les comparaisons nécessaires entre ma version et la leur, mais là je bloque. Leur exemple est décrit sur NetBeans, et le mien est sur Eclipse.
Grosso-modo, voici l'erreur que j'obtiens :
L'arborescence de mes fichiers :
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 INFO: ADM1064 : Le fichier à télécharger sur [C:\Documents and Settings\Olivier\Local Settings\Temp\s1astempdomain1server248582184\ObjectExchange.ear] existe et sera écrasé. INFO: ADM1006 : Téléchargement du fichier sur :[C:\Documents and Settings\Olivier\Local Settings\Temp\s1astempdomain1server248582184\ObjectExchange.ear] GRAVE: Class [ Lfr/societe/tests/objectexchange/entity/User; ] not found. Error while loading [ class fr.societe.tests.objectexchange.web.admin.UserManagerBean ] ATTENTION: Error in annotation processing: java.lang.NoClassDefFoundError: Lfr/societe/tests/objectexchange/entity/User; GRAVE: Class [ fr/societe/tests/objectexchange/entity/Resource ] not found. Error while loading [ class fr.societe.tests.objectexchange.session.PublicServiceBean ] ATTENTION: Error in annotation processing: java.lang.NoClassDefFoundError: fr/societe/tests/objectexchange/entity/Resource GRAVE: Une exception s''est produite dans la phase J2EEC.java.lang.RuntimeException: Error processing EjbDescriptor com.sun.enterprise.deployment.backend.IASDeploymentException: Erreur lors du chargement des descripteurs du déploiement pour le module [ObjectExchange] -- Error processing EjbDescriptor at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:406) at com.sun.enterprise.deployment.backend.AppDeployerBase.loadDescriptors(AppDeployerBase.java:359) at com.sun.enterprise.deployment.backend.AppDeployer.explodeArchive(AppDeployer.java:303) at com.sun.enterprise.deployment.backend.AppDeployer.deploy(AppDeployer.java:207) at com.sun.enterprise.deployment.backend.AppDeployer.doRequestFinish(AppDeployer.java:148) ...
Après je ne sais pas trop quoi vous montrer ; peut-être la classe UserManagerBean à l'origine du problème. D'ailleurs, ce qui me semble bizarre dans cette classe, c'est qu'on est dans la "zone" présentation, et on accède directement aux beans entités, d'après le livre il me semblait que ce n'était pas possible :
Avec un grand merci pour vos suggestions !
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
90
91
92
93
94
95
96
97
98
99
100 package fr.societe.tests.objectexchange.web.admin; import java.util.Collection; import javax.ejb.EJB; import javax.faces.context.ExternalContext; import javax.faces.context.FacesContext; import javax.servlet.http.HttpServletRequest; import fr.societe.tests.objectexchange.entity.User; import fr.societe.tests.objectexchange.session.AdminServiceBeanLocal; /** * @author Olivier * @date 9 mars 2010 */ public class UserManagerBean { @EJB() private AdminServiceBeanLocal adminService; private User managedUser; /** Creates a new instance of UserManagerBean */ public UserManagerBean() { managedUser = new User(); } public void initUserFromRequestParam() { managedUser = adminService.findUserById(getManagedUserId()); } public int getManagedUserId() { ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext(); HttpServletRequest request = (HttpServletRequest)ec.getRequest(); String param = request.getParameter("id"); return Integer.parseInt(param); } /** * Retourne les utilisateurs de la base de données * */ public Collection<User> getList() { return adminService.findAllUsers(); } /** * Détaille l'utilisateur sélectionné */ public void detail() { } public void remove() { adminService.deleteUser(getManagedUserId()); } public void edit() { initUserFromRequestParam(); } public void newBlank() { managedUser = new User(); } public void save() { if(managedUser.getId() > 0) { adminService.updateUser(managedUser); } else { adminService.addUser(managedUser); newBlank(); } } public User getManagedUser() { return managedUser; } public void setManagedUser(User managedUser) { this.managedUser = managedUser; } }
Partager