list createQuery java.lang.reflect.UndeclaredThrowableException
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:
Code:
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 ma classe User
Code:
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;
}
} |
ici la trace complète du log
Code:
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) |
Merci de votre aide parce que l'ajout lui fonctionne