Bonjour,
Je n'arrive pas à utiliser un projet EJB (déployé dans JBoss) qui contient une annotation @OneToMany .
Configuration : JBoss 4.0.5 ; eclipse Ganymede et mysql comme SGBD.
Concernant les EJB Entity : j'ai créé 2 : "User" et "Privilege". Un Privilege posséde plusieurs User.
Voici le code source de mes EJB Entity :
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121 package entities; import java.io.Serializable; import java.sql.Date; import java.util.Collection; import javax.persistence.*; @Entity public class User implements Serializable { @Id @Column(name = "UserID") private int UserID; private String password; private String login; private String Name; private String gender; private String Phone; private String Email; private String Address; private int isActive; private Date lastLoginTime; @ManyToOne(cascade=CascadeType.ALL) @JoinColumn(name = "Privilege_idPrivilege") private Privilege privilege; public User() { super(); // TODO Auto-generated constructor stub } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getName() { return Name; } public void setName(String name) { Name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getPhone() { return Phone; } public void setPhone(String phone) { Phone = phone; } public String getEmail() { return Email; } public void setEmail(String email) { Email = email; } public String getAddress() { return Address; } public void setAddress(String address) { Address = address; } public int getIsActive() { return isActive; } public void setIsActive(int isActive) { this.isActive = isActive; } public void setLogin(String login) { this.login = login; } public String getLogin() { return login; } public int getUserID() { return UserID; } public void setUserID(int userID) { UserID = userID; } public void setLastLoginTime(Date lastLoginTime) { this.lastLoginTime = lastLoginTime; } public Date getLastLoginTime() { return lastLoginTime; } public Privilege getPrivilege() { return privilege; } public void setPrivilege(Privilege privilege) { this.privilege = privilege; } }
et
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 package entities; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import javax.persistence.*; @Entity public class Privilege implements Serializable{ @Id @GeneratedValue(strategy=GenerationType.AUTO) private int idPrivilege ; private int Level ; @OneToMany private Collection<User> users = new ArrayList<User>(); public int getIdPrivilege() { return idPrivilege; } public void setIdPrivilege(int idPrivilege) { this.idPrivilege = idPrivilege; } public int getLevel() { return Level; } public void setLevel(int level) { Level = level; } public Collection<User> getUsers() { return users; } public void setUsers(Collection<User> users) { this.users = users; } }
Dans l'application de test j'obtient le message d'erreur suivant (sachant que l'app de test : GestionDeStockClient et "search_user" est la methode de l'EJB Session qui retourne l'EJB Entity User ) :
merci
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 Exception in thread "main" java.lang.reflect.UndeclaredThrowableException at $Proxy0.search_user(Unknown Source) at com.et.GestionDeStockClient.main(GestionDeStockClient.java:30) Caused by: java.lang.ClassNotFoundException: [Ljava.lang.StackTraceElement; at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at org.jboss.remoting.loading.RemotingClassLoader.loadClass(RemotingClassLoader.java:50) at org.jboss.remoting.loading.ObjectInputStreamWithClassLoader.resolveClass(ObjectInputStreamWithClassLoader.java:139) at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source) at java.io.ObjectInputStream.readClassDesc(Unknown Source) at java.io.ObjectInputStream.readArray(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.defaultReadFields(Unknown Source) at java.io.ObjectInputStream.readSerialData(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.defaultReadFields(Unknown Source) at java.io.ObjectInputStream.readSerialData(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.defaultReadFields(Unknown Source) at java.io.ObjectInputStream.readSerialData(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.defaultReadFields(Unknown Source) at java.io.ObjectInputStream.readSerialData(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObject(JavaSerializationManager.java:128) at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.read(SerializableUnMarshaller.java:66) at org.jboss.remoting.transport.socket.SocketClientInvoker.transport(SocketClientInvoker.java:279) at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:143) at org.jboss.remoting.Client.invoke(Client.java:525) at org.jboss.remoting.Client.invoke(Client.java:488) at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:55) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:53) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:77) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102) ... 2 more
Partager