Liferay中的自动登录钩子

Liferay中的自动登录钩子,liferay,autologin,Liferay,Autologin,我已经编写了一个钩子(从AutoLogin扩展而来的类),它在发出任何请求时都会被调用。 在类的login方法中,我有一个逻辑来验证随请求发送的请求参数 现在,如果身份验证被清除,我将使用 UserLocalServiceUtil.getUserByScreenName(公司ID,用户名) 现在,如果用户在liferay中不存在,我将向liferay添加一个用户 user=UserLocalServiceUtil.createUser(contactId); user.setFirstName

我已经编写了一个钩子(从
AutoLogin
扩展而来的类),它在发出任何请求时都会被调用。 在类的login方法中,我有一个逻辑来验证随请求发送的请求参数

现在,如果身份验证被清除,我将使用

UserLocalServiceUtil.getUserByScreenName(公司ID,用户名)
现在,如果用户在liferay中不存在,我将向liferay添加一个用户

user=UserLocalServiceUtil.createUser(contactId);
user.setFirstName(fname);
user.setLastName(lname);
user.setActive(true);
user.setAgreedToTermsOfUse(true);
user.setCreateDate(新日期());
user.setScreenName(用户名);
user.setCompanyId(companyId);
user.setPassword(“测试”);
user=UserLocalServiceUtil.addUser(用户);
现在我看到用户被创建了。 但是,有时会出现以下例外情况

com.liferay.portal.kernel.dao.orm.ORMException: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
知道为什么会这样吗? 另外,如果在我以管理员身份登录门户时用户创建成功,则该用户不会列在用户列表中。
知道为什么会这样吗?我哪里出了问题吗

这是因为您使用了错误的方法添加用户。有关更多详细信息,请查看enterprise admin portlet source下的editUserAction.java