i have this editUser method:
Code:
/**
* @ejb.interface-method
*
* @param user
* @throws ServiceException
*/
public MUser EditUser (MUser user, List listRoles)throws ServiceException {
Session ses = null;
String userId = user.getUserId();
try{
ses = ThreadLocalSession.currentSession();
//Search for user Id
Query query = ses.createQuery("from MUser as user where user.userId=?");
query.setString(0, userId);
List result = query.list();
//Obtain list of roles for that user
MUser user1 = (MUser)result.get(0);
List listRole = new ArrayList();
listRole = user1.getUserRoles();
//Delete list of roles
Iterator ite = listRole.iterator();
while(ite.hasNext()){
MUserRoles roles = (MUserRoles)ite.next();
ses.delete(roles);
}
//ses.delete(user);
int i =0;
List list = new ArrayList();
Iterator ite2 = listRoles.iterator();
while(ite2.hasNext()){
MRoles roles = (MRoles)ite2.next();
MUserRoles x = new MUserRoles();
x.setRoleId(roles.roleId);
x.setUser(user);
x.setNo(i);
list.add(i,x);
ses.save(x);
i++;
}
user.setUserRoles(list);
user.setDesignation(user.getDesignation());
user.setFullName(user.getFullName());
//user.setPassword(users.getPassword());
ses.update(user);
ses.flush();
return user;
} catch (HibernateException e) {
ctx.setRollbackOnly();
throw new ServiceException("Unable to update User "/*[" +users.getUserId()+"].\n"
+getCause(e.getCause() != null?e.getCause().toString():"")*/);
}finally{
try {
ThreadLocalSession.closeSession();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
}
but when i try to edit the data. it seem like cannot work. i called this method by
Code:
Object ob = EJBInvoker.invokeRemoteEJB(Global.JBOSS_JNP,SetUpBeanHome.JNDI_NAME,"EditUser",
args,argsType);
how to fix it?? thanks