Salut,
Je suis entrain d'apprendre à utiliser Spring3 et Hibernate 4 et je suis confronté à une erreur lorsque je veux récupérer la liste de mes User.
Voici la classe où se passe l'erreur:
ici ma classe User
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182 package com.starterSpring.services.user; import java.util.List; import javax.annotation.Resource; import org.apache.log4j.Logger; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import modele.DAO.beans.user.*; import modele.DAO.*; import com.starterSpring.utilities.*; @Service("userService") @Transactional public class UserService { protected static Logger logger = Logger.getLogger("service"); @Resource(name="sessionFactory") private SessionFactory sessionFactory = new HibernateSessionFactory().getSessionFactory(); private Transaction tx = null; private CommonsFct cf = new CommonsFct(); /** * Retrieves all usrs * * @return a list of usrs */ public List<User> getAll() { logger.debug("Retrieving all usrs"); List<User> lU = null; try { // Retrieve session from Hibernate Session session = sessionFactory.getCurrentSession(); session.beginTransaction(); logger.debug("Start transaction"); // Create a Hibernate query (HQL) //l'erreur se passe à ce moment lU = session.createQuery("FROM User").list(); logger.debug("Create Query"); session.getTransaction().commit(); } catch (RuntimeException re) { logger.error("get all users failed", re); throw re; } return lU; // Retrieve all //return query.list(); /*logger.debug("get all users"); try { sessionFactory.getCurrentSession().beginTransaction(); List results = sessionFactory.getCurrentSession().createQuery("from User ").list(); sessionFactory.getCurrentSession().getTransaction().commit(); logger.debug("get all users successful, result size: " + results.size()); return results; } catch (RuntimeException re) { logger.error("get all users failed", re); throw re; }*/ } /** * Retrieves a single usr */ public User get( Integer id ) { // Retrieve session from Hibernate Session session = sessionFactory.getCurrentSession(); session.beginTransaction(); // Retrieve existing usr first User usr = (User) session.get(User.class, id); return usr; } /** * Adds a new usr */ public boolean add(User usr, String pswdConfirm) { logger.debug("Adding new usr"); boolean success = true; // Retrieve session from Hibernate Session session = sessionFactory.getCurrentSession(); try{ //check password and confirmation are equals if(usr.getUserPswd().equals(pswdConfirm) && pswdConfirm != ""){ //crypte le password usr.setUserPswd(cf.encrypt(usr.getUserPswd(),"anderlecht")); }else{ success = false; } session.beginTransaction(); session.save(usr); session.getTransaction().commit(); logger.debug("commit"); } catch (HibernateException e) { if (session.getTransaction() != null){ session.getTransaction().rollback(); } success = false; e.printStackTrace(); } /*finally { session.close(); }*/ return success; } /** * Deletes an existing usr * @param id the id of the existing usr */ public void delete(Integer id) { logger.debug("Deleting existing usr"); // Retrieve session from Hibernate Session session = sessionFactory.getCurrentSession(); // Retrieve existing usr first User usr = (User) session.get(User.class, id); // Delete try{ //tx = session.beginTransaction(); session.beginTransaction(); session.delete(usr); session.getTransaction().commit(); logger.debug("commit"); } catch (HibernateException e) { if (session.getTransaction() != null){ session.getTransaction().rollback(); } e.printStackTrace(); } /*finally { session.close(); }*/ } /** * Edits an existing usr */ public void edit(User usr) { logger.debug("Editing existing usr"); // Retrieve session from Hibernate Session session = sessionFactory.getCurrentSession(); // Retrieve existing usr via id User existingusr = (User) session.get(User.class, usr.getUserId()); // Assign updated values to this usr existingusr.setUserLogin(usr.getUserLogin()); existingusr.setUserPswd(usr.getUserPswd()); existingusr.setUserNom(usr.getUserNom()); existingusr.setUserPrenom(usr.getUserPrenom()); existingusr.setUserAdresse(usr.getUserAdresse()); existingusr.setUserCp(usr.getUserCp()); existingusr.setUserEmail(usr.getUserEmail()); existingusr.setUserTel(usr.getUserTel()); existingusr.setUserGsm(usr.getUserGsm()); // Save updates try{ //tx = session.beginTransaction(); session.beginTransaction(); session.save(existingusr); session.getTransaction().commit(); logger.debug("commit"); } catch (HibernateException e) { if (session.getTransaction() != null){ session.getTransaction().rollback(); } e.printStackTrace(); } /*finally { session.close(); }*/ } }
ici la trace complète du 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
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215 package modele.DAO.beans.user; import java.text.SimpleDateFormat; import java.util.Date; /*import javax.validation.constraints.Pattern; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.Size;*/ import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; import org.hibernate.validator.constraints.Email; import org.hibernate.validator.constraints.NotEmpty; /** * User generated by hbm2java */ @Entity @Table(name = "user") public class User implements java.io.Serializable { @Id @Column(name = "user_id") @GeneratedValue private Integer userId; //@Size(min = 1, message="trou dcul c'est faux") @Column(name = "user_login") private String userLogin; @Column(name = "user_pswd") private String userPswd; @Column(name = "user_nom") private String userNom; @Column(name = "user_prenom") private String userPrenom; @Column(name = "user_adresse") private String userAdresse; @Column(name = "user_cp") private String userCp; //@Pattern(regexp="[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}",message="${message[valEmail]}") //@NotEmpty //@Email @Column(name = "user_email") private String userEmail; @Column(name = "user_tel") private String userTel; @Column(name = "user_gsm") private String userGsm; @Column(name = "user_createDate") private Date userCreateDate; @Column(name = "user_isAdmin") private boolean userIsAdmin; @Column(name = "user_isValide") private boolean userIsValide; public User() { } public User(String userLogin, String userPswd, String userNom, String userPrenom, String userAdresse, String userCp, String userEmail, String userTel, String userGsm, Date userCreateDate) { this.userLogin = userLogin; this.userPswd = userPswd; this.userNom = userNom; this.userPrenom = userPrenom; this.userAdresse = userAdresse; this.userCp = userCp; this.userEmail = userEmail; this.userTel = userTel; this.userGsm = userGsm; this.userCreateDate = userCreateDate; } public Integer getUserId() { return this.userId; } public void setUserId(Integer userId) { this.userId = userId; } /** * @param userLogin * @param userPswd * @param userNom * @param userPrenom * @param userAdresse * @param userCp * @param userEmail * @param userTel * @param userGsm * @param userCreateDate * @param userIsAdmin * @param userIsValide */ public User(String userLogin, String userPswd, String userNom, String userPrenom, String userAdresse, String userCp, String userEmail, String userTel, String userGsm, Date userCreateDate, boolean userIsAdmin, boolean userIsValide) { super(); this.userLogin = userLogin; this.userPswd = userPswd; this.userNom = userNom; this.userPrenom = userPrenom; this.userAdresse = userAdresse; this.userCp = userCp; this.userEmail = userEmail; this.userTel = userTel; this.userGsm = userGsm; this.userCreateDate = userCreateDate; this.userIsAdmin = userIsAdmin; this.userIsValide = userIsValide; } public String getUserLogin() { return this.userLogin; } public void setUserLogin(String userLogin) { this.userLogin = userLogin; } public String getUserPswd() { return this.userPswd; } public void setUserPswd(String userPswd) { this.userPswd = userPswd; } public String getUserNom() { return this.userNom; } public void setUserNom(String userNom) { this.userNom = userNom; } public String getUserPrenom() { return this.userPrenom; } public void setUserPrenom(String userPrenom) { this.userPrenom = userPrenom; } public String getUserAdresse() { return this.userAdresse; } public void setUserAdresse(String userAdresse) { this.userAdresse = userAdresse; } public String getUserCp() { return this.userCp; } public void setUserCp(String userCp) { this.userCp = userCp; } public String getUserEmail() { return this.userEmail; } public void setUserEmail(String userEmail) { this.userEmail = userEmail; } public String getUserTel() { return this.userTel; } public void setUserTel(String userTel) { this.userTel = userTel; } public String getUserGsm() { return this.userGsm; } public void setUserGsm(String userGsm) { this.userGsm = userGsm; } public Date getUserCreateDate() { return this.userCreateDate; } public String getUserCreateDateFormat() { SimpleDateFormat formater = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"); return formater.format(this.userCreateDate); } public void setUserCreateDate(Date userCreateDate) { this.userCreateDate = userCreateDate; } public boolean isUserIsAdmin() { return userIsAdmin; } public void setUserIsAdmin(boolean userIsAdmin) { this.userIsAdmin = userIsAdmin; } public boolean isUserIsValide() { return userIsValide; } public void setUserIsValide(boolean userIsValide) { this.userIsValide = userIsValide; } }
Merci de votre aide parce que l'ajout lui fonctionne
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 [DEBUG] [http-bio-8080-exec-6 11:20:12] (UserService.java:getAll:35) Retrieving all usrs [DEBUG] [http-bio-8080-exec-6 11:20:12] (UserService.java:getAll:41) Start transaction [ERROR] [http-bio-8080-exec-6 11:20:12] (UserService.java:getAll:47) get all users failed java.lang.reflect.UndeclaredThrowableException at $Proxy16.createQuery(Unknown Source) at com.starterSpring.services.user.UserService.getAll(UserService.java:43) at com.starterSpring.controller.user.GestionUser.listUser(GestionUser.java:55) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:746) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:687) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:352) ... 36 more Caused by: java.lang.NoClassDefFoundError: antlr/RecognitionException at org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory.createQueryTranslator(ASTQueryTranslatorFactory.java:59) at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:103) at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80) at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:168) at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:221) at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:199) at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1735) ... 41 more Caused by: java.lang.ClassNotFoundException: antlr.RecognitionException at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533) ... 48 more 23 déc. 2012 23:20:12 org.apache.catalina.core.StandardWrapperValve invoke GRAVE: Servlet.service() for servlet [GestionUser] in context with path [/starterSpring] threw exception [Request processing failed; nested exception is java.lang.reflect.UndeclaredThrowableException] with root cause java.lang.ClassNotFoundException: antlr.RecognitionException at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533) at org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory.createQueryTranslator(ASTQueryTranslatorFactory.java:59) at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:103) at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80) at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:168) at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:221) at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:199) at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1735) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:352) at $Proxy16.createQuery(Unknown Source) at com.starterSpring.services.user.UserService.getAll(UserService.java:43) at com.starterSpring.controller.user.GestionUser.listUser(GestionUser.java:55) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:746) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:687) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680)
Partager