2011-01-03 2 views
0

J'ai écrit un crochet (classe allant de AutoLogin) qui est appelé quand une demande est faite. Dans la méthode de connexion de ma classe, j'ai une logique pour authentifier les paramètres de requête envoyés avec la requête.Crochet de connexion automatique dans Liferay

maintenant Si l'authentification est effacée, je vérifie si l'utilisateur existe dans Liferay en utilisant

UserLocalServiceUtil.getUserByScreenName(companyId, username) 

Maintenant, si l'utilisateur n'existe pas dans Liferay, j'ajouter un utilisateur à la 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); 

Maintenant, je vois que l'utilisateur est créé. Cependant parfois il donne l'exception suivante

com.liferay.portal.kernel.dao.orm.ORMException: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update 

Toute idée pourquoi cela pourrait être INTERVENUES? En outre, si la création de l'utilisateur aboutit lorsque je me connecte au portail en tant qu'administrateur, cet utilisateur ne figure pas dans la liste des utilisateurs. Une idée de pourquoi cela se passe-t-il? Est-ce que je vais mal quelque part?

Répondre

0

C'est parce que vous utilisez la mauvaise méthode pour ajouter un utilisateur. Vérifiez editUserAction.java sous la source du portlet d'administration d'entreprise pour plus de détails.

Questions connexes