0

我写了一个钩子(类扩展自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

知道为什么会发生这种情况吗?此外,如果当我以管理员身份登录门户网站时用户创建成功,则此用户不会列在用户列表中。知道为什么会这样吗?我在某个地方出错了吗?

4

1 回答 1

0

这是因为您使用错误的方法添加用户。检查企业管理 portlet 源下的 editUserAction.java 以获取更多详细信息。

于 2011-01-19T16:00:39.407 回答