Я написал хук (класс, расширяющийся от AutoLogin
), который вызывается при выполнении любого запроса.В методе входа в мой класс у меня есть логика для аутентификации параметров запроса, отправленных с запросом.
Теперь Если аутентификация сброшена, я проверяю, существует ли пользователь в liferay, используя
UserLocalServiceUtil.getUserByScreenName(companyId, username)
Теперь, если пользователь не существует в liferay, я добавляю пользователя в liferay
user = UserLocalServiceUtil.createUser(contactId);
user.setFirstName(fname);
user.setLastName(lname);
user.setActive(true);
user.setAgreedToTermsOfUse(true);
user.setCreateDate(new Date());
user.setScreenName(username);
user.setCompanyId(companyId);
user.setPassword("test");
user = UserLocalServiceUtil.addUser(user);
Теперь здесь я вижу, что пользователь создается.Однако иногда это дает следующее исключение
com.liferay.portal.kernel.dao.orm.ORMException: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
Есть идеи, почему это может происходить?Также, если создание пользователя прошло успешно, когда я захожу на портал как администратор, этот пользователь не будет указан в списке пользователей.Есть идеи, почему это происходит?Я что-то не так делаю?