Fórumok

Liferay Hook

ramesh babu, módosítva 9 év-val korábban

Liferay Hook

New Member Bejegyzések: 5 Csatlakozás dátuma: 2014.09.04. Legújabb bejegyzések
Hi everyone,

I'm adding the custom attribute for basic registration portlet by using liferay hook .
But addUser won't work:

public class MyUserLocalServiceImpl extends UserLocalServiceWrapper{
public User addUser(long creatorUserId, long companyId,
boolean autoPassword, String password1, String password2,
boolean autoScreenName, String screenName, String emailAddress,
long facebookId, String openId, Locale locale, String firstName,
String middleName, String lastName, int prefixId, int suffixId,
boolean male, int birthdayMonth, int birthdayDay, int birthdayYear,
String jobTitle, long[] groupIds, long[] organizationIds,
long[] roleIds, long[] userGroupIds, boolean sendEmail,
ServiceContext serviceContext) throws PortalException,
SystemException {

System.out.println("\n\n add user");

User user = super.addUser(creatorUserId, companyId, autoPassword, password1,
password2, autoScreenName, screenName, emailAddress, facebookId,
openId, locale, firstName, middleName, lastName, prefixId, suffixId,
male, birthdayMonth, birthdayDay, birthdayYear, jobTitle, groupIds,
organizationIds, roleIds, userGroupIds, sendEmail, serviceContext);

return user;
}


I'm facing this error but the addUser method create error,


Locale cannot be resolved to a type................

Note: I have to addUser and get the getUserId() and do some more task by using that Id into custom table.
what i am missing here,
anyone please help me

Thanks,
Ramesh
thumbnail
Olaf Kock, módosítva 9 év-val korábban

RE: Liferay Hook

Liferay Legend Bejegyzések: 6403 Csatlakozás dátuma: 2008.09.23. Legújabb bejegyzések
Compiler error? Missing import?

Otherwise, please give more details as to when this error shows up
thumbnail
M J, módosítva 9 év-val korábban

RE: Liferay Hook

Regular Member Bejegyzések: 184 Csatlakozás dátuma: 2013.03.01. Legújabb bejegyzések
Try this instead:


import com.liferay.portal.model.GroupConstants;
import com.liferay.portal.model.User;
import com.liferay.portal.service.GroupLocalServiceUtil;
import com.liferay.portal.service.UserLocalService;
import com.liferay.portal.service.UserLocalServiceWrapper;

  @Override
  public com.liferay.portal.model.User addUserWithWorkflow(
    long creatorUserId, long companyId, boolean autoPassword,
    java.lang.String password1, java.lang.String password2,
    boolean autoScreenName, java.lang.String screenName,
    java.lang.String emailAddress, long facebookId,
    java.lang.String openId, java.util.Locale locale,
    java.lang.String firstName, java.lang.String middleName,
    java.lang.String lastName, int prefixId, int suffixId, boolean male,
    int birthdayMonth, int birthdayDay, int birthdayYear,
    java.lang.String jobTitle, long[] groupIds, long[] organizationIds,
    long[] roleIds, long[] userGroupIds, boolean sendEmail,
    com.liferay.portal.service.ServiceContext serviceContext)
    throws com.liferay.portal.kernel.exception.PortalException,
      com.liferay.portal.kernel.exception.SystemException {

    System.out.println("Calling: " + "com.liferay.portal.model.User addUserWithWorkflow()");

    // This adds the default site for the new User.
    // GroupLocalServiceUtil.getGroup(companyId, GroupConstants.GUEST) retrieves the Group
    // object that belongs to Guest from table "Group_" which is the default
    // site. If groupId is found, addUserWithWorkflow()
    // adds a row with userId and groupId to "Users_Groups" table for the new
    // user.
    if (groupIds == null || groupIds.length <= 0) {
      long groupId = GroupLocalServiceUtil.getGroup(companyId, GroupConstants.GUEST).getGroupId();
      if (groupId > 0) {
        groupIds = new long[1];
        groupIds[0] = groupId;
      }
    }

    User user = super.addUserWithWorkflow(creatorUserId, companyId, autoPassword,
        password1, password2,
        autoScreenName, screenName,
        emailAddress, facebookId,
        openId, locale,
        firstName, middleName,
        lastName, prefixId, suffixId, male,
        birthdayMonth, birthdayDay, birthdayYear,
        jobTitle, groupIds, organizationIds,
        roleIds, userGroupIds, sendEmail,
        serviceContext);

    // do your custom add code (if you have any) here.

    return user;
  }

  @Override
  public com.liferay.portal.model.User updateUser(long userId,
      java.lang.String oldPassword, java.lang.String newPassword1,
      java.lang.String newPassword2, boolean passwordReset,
      java.lang.String reminderQueryQuestion,
      java.lang.String reminderQueryAnswer, java.lang.String screenName,
      java.lang.String emailAddress, long facebookId,
      java.lang.String openId, java.lang.String languageId,
      java.lang.String timeZoneId, java.lang.String greeting,
      java.lang.String comments, java.lang.String firstName,
      java.lang.String middleName, java.lang.String lastName, int prefixId,
      int suffixId, boolean male, int birthdayMonth, int birthdayDay,
      int birthdayYear, java.lang.String smsSn, java.lang.String aimSn,
      java.lang.String facebookSn, java.lang.String icqSn,
      java.lang.String jabberSn, java.lang.String msnSn,
      java.lang.String mySpaceSn, java.lang.String skypeSn,
      java.lang.String twitterSn, java.lang.String ymSn,
      java.lang.String jobTitle, long[] groupIds, long[] organizationIds,
      long[] roleIds,
      java.util.List<com.liferay.portal.model.usergrouprole> userGroupRoles,
      long[] userGroupIds,
      com.liferay.portal.service.ServiceContext serviceContext)
      throws com.liferay.portal.kernel.exception.PortalException,
        com.liferay.portal.kernel.exception.SystemException {
    
    System.out.println("Calling: " + "com.liferay.portal.model.User updateUser()");

    User user = super.updateUser(userId,
        oldPassword, newPassword1,
        newPassword2, passwordReset,
        reminderQueryQuestion,
        reminderQueryAnswer, screenName,
        emailAddress, facebookId,
        openId, languageId,
        timeZoneId, greeting,
        comments, firstName,
        middleName, lastName, prefixId,
        suffixId, male, birthdayMonth, birthdayDay,
        birthdayYear, smsSn, aimSn,
        facebookSn, icqSn,
        jabberSn, msnSn,
        mySpaceSn, skypeSn,
        twitterSn, ymSn,
        jobTitle, groupIds, organizationIds,
        roleIds,
        userGroupRoles,
        userGroupIds,
        serviceContext);

    // do your custom update code (if you have any) here.

    return user;
  }

  @Override
  public com.liferay.portal.model.User deleteUser(long userId) throws com.liferay.portal.kernel.exception.PortalException, com.liferay.portal.kernel.exception.SystemException {

    System.out.println("Calling: " + "com.liferay.portal.model.User deleteUser(userId)");

    User user = super.deleteUser(userId);

    // do your custom delete code (if you have any) here.

    return user;
  }

</com.liferay.portal.model.usergrouprole>


It works for me. I am using Liferay 6.2.
ramesh babu, módosítva 9 év-val korábban

RE: Liferay Hook

New Member Bejegyzések: 5 Csatlakozás dátuma: 2014.09.04. Legújabb bejegyzések
Hi M J,
here we are following this method but it is not working so addUser(--) method not calling this server ,
please help me.



public MyUserLocalServiceImpl(UserLocalService userLocalService) {

public com.liferay.portal.model.User addUser(long creatorUserId, long companyId,
boolean autoPassword, String password1, String password2,
boolean autoScreenName, String screenName, String emailAddress,
long facebookId, String openId, java.util.Locale locale, String firstName,
String middleName, String lastName, int prefixId, int suffixId,
boolean male, int birthdayMonth, int birthdayDay, int birthdayYear,
String jobTitle, long[] groupIds, long[] organizationIds,
long[] roleIds, long[] userGroupIds, boolean sendEmail,
ServiceContext serviceContext) throws com.liferay.portal.kernel.exception.PortalException,
com.liferay.portal.kernel.exception.SystemException {

System.out.println("\n\n add user");

com.liferay.portal.model.User user = super.addUser(creatorUserId, companyId, autoPassword, password1,
password2, autoScreenName, screenName, emailAddress, facebookId,
openId, locale, firstName, middleName, lastName, prefixId, suffixId,
male, birthdayMonth, birthdayDay, birthdayYear, jobTitle, groupIds,
organizationIds, roleIds, userGroupIds, sendEmail, serviceContext);
System.out.println("Calling: "+user.getUserId());
return user;
}
ramesh babu, módosítva 9 év-val korábban

RE: Liferay Hook

New Member Bejegyzések: 5 Csatlakozás dátuma: 2014.09.04. Legújabb bejegyzések
here is my web.xml and any mistake in this below steps,
please help me,

<hook>
<custom-jsp-dir>/META-INF/custom_jsps</custom-jsp-dir>

<service>
<service-type>com.liferay.portal.service.UserLocalService</service-type>
<service-impl>com.liferay.datareis.exam.hook.MyUserLocalServiceImpl</service-impl>
</service>
</hook>
thumbnail
Pankaj Kathiriya, módosítva 9 év-val korábban

RE: Liferay Hook

Liferay Master Bejegyzések: 722 Csatlakozás dátuma: 2010.08.05. Legújabb bejegyzések
This entries should be in liferay-hook.xml not in web.xml, right?

Just follow steps mentioned here, it should work without any issues.
ramesh babu, módosítva 9 év-val korábban

RE: Liferay Hook

New Member Bejegyzések: 5 Csatlakozás dátuma: 2014.09.04. Legújabb bejegyzések
sorry
those entities are in liferay-hook.xml, the web.xml is like

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<jsp-config>
<taglib>
<taglib-uri>http://liferay.com/tld/aui</taglib-uri>
<taglib-location>/WEB-INF/tld/liferay-aui.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/portlet</taglib-uri>
<taglib-location>/WEB-INF/tld/liferay-portlet.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://liferay.com/tld/ui</taglib-uri>
<taglib-location>/WEB-INF/tld/liferay-ui.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://liferay.com/tld/util</taglib-uri>
<taglib-location>/WEB-INF/tld/liferay-util.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
</taglib>

</jsp-config>


</web-app>
thumbnail
Olaf Kock, módosítva 9 év-val korábban

RE: Liferay Hook

Liferay Legend Bejegyzések: 6403 Csatlakozás dátuma: 2008.09.23. Legújabb bejegyzések
Well, the code you give doesn't even compile

ramesh babu:

public MyUserLocalServiceImpl(UserLocalService userLocalService) {

    public com.liferay.portal.model.User addUser(...) throws ... {
	System.out.println("\n\n add user"); 
	com.liferay.portal.model.User user = super.addUser(...);
	System.out.println("Calling: "+user.getUserId());
	return user;
}


Note that your implementation class should extend UserLocalServiceWrapper:

public class MyUserLocalServiceImpl extends UserLocalServiceWrapper {
   // ... now override the methods that you'd like to override,
   @Override
   public User addUser(...) throws ... {
	System.out.println("\n\n add user"); 
	User user = super.addUser(...);
	System.out.println("Calling: "+user.getUserId());
	return user;
   }
}


And declare that you override this service in liferay-hook.xml