Invoking Liferay Services From Scripts

Many scripting scenarios require invoking Liferay services. Liferay *ServiceUtil classes are the fastest and most convenient way to invoke Liferay services in the Script Console. Use Groovy to invoke Liferay services the same way you would use Java. Groovy’s syntax facilitates writing concise, elegant scripts.

We’ll demonstrate by comparing Java code and Groovy code that uses UserLocalServiceUtil to retrieve a list of users and print their names to Liferay’s log.


You can execute this Java code in a module deployed to DXP or you can execute the code in the Script Console:

import com.liferay.portal.kernel.model.User;
import com.liferay.portal.kernel.service.UserLocalServiceUtil;
import java.util.List;


int userCount = UserLocalServiceUtil.getUsersCount();
List<User> users = UserLocalServiceUtil.getUsers(0, userCount);

for (User user:users) {
    System.out.println("User Name: " + user.getFullName());



Or you could use Groovy code in the Script Console:

import com.liferay.portal.kernel.service.UserLocalServiceUtil

userCount = UserLocalServiceUtil.getUsersCount()
users = UserLocalServiceUtil.getUsers(0, userCount)

for (user in users){
    System.out.println("User Name: " + user.getFullName())

Importing com.liferay.portal.kernel.model.User and java.util.List isn’t necessary because the Script Console makes them available. And the Groovy syntax is simpler than the Java syntax.


If the service doesn’t have a *ServiceUtil class, use a Service Tracker to access the service.

Next Steps