Questions tagged [liferay]

Liferay is an open source JSR 286 compliant portal and social platform, written in Java. It provides fully functional built-in portlets (60+) and also various integration points to seamlessly integrate with other third-party softwares like Alfresco, Sharepoint etc. Make sure to also tag with the specific version that you're asking about.

Liferay is an open-source portal written in Java and a social platform. It implements JSR-286 and has various proprietary facilities.

Liferay Portal was created in 2000 as open source software. Thanks to a decade of ongoing collaboration with its active and mature open source community, Liferay's product development is the result of direct input from users with representation from all industries and organizational roles. Liferay provides a lot of integration points with other softwares like , , etc.

Liferay as a portal server is application-server agnostic, which means that Liferay can be installed on almost any Java application server.

Liferay provides more than 60+ preinstalled or built-in portlets (also known as out-of-the-box (OOTB) portlets) and the latest version Liferay 7 provides many more features like:

  1. Dynamic data lists
  2. Custom web content types
  3. Workflows for documents and media
  4. Related assets
  5. Faceted search
  6. Integration with multiple repositories
  7. Dynamic site templates
  8. Mobile device rules
  9. Bootstrap theme
  10. Advance Display Templates (ADT)

Liferay has a market-place which serves as an "app" store for the Liferay portal.

Editions

Liferay is distributed in two editions:

  1. Liferay Portal Community Edition (Liferay CE): This is supported by the Community and is free.
  2. Liferay Portal Enterprise Edition (Liferay EE): This is a licensed version of the Portal.

More about the editions can be checked out here.

Liferay Development

It is possible to customize Liferay (OOTB portlets and core) and add new features with the following plugin types using Liferay's Plugins SDK:

  1. EXT Plugin (prior to versions 6.x, it was known as the EXT Environment): To customize liferay's core classes and those things which are not customizable by hooks.

  2. Portlet Plugin: It helps in creating JSR 168 and JSR 286 compliant portlets. Liferay supports many frameworks to create portlets some of which are JSF with Liferay Faces, Spring MVC, Vaadin, Struts and for simple portlets Liferay provides a MVCPortlet class.

  3. Hook Plugin: This is used to modify Liferay's JSPs and other services

  4. Theme Plugin: This is used to customize the look and feel of the whole Portal.

  5. Layout Plugin: This is used to customize the page's layout and is one of the simplest plugins to develop. Liferay comes pre-bundled with 10 layouts.

All the plugins are packaged as .WAR files. All plugins are hot-deployable except the EXT plugin which requires server restart.

Liferay also provides Liferay IDE as an plugin to increase development productivity.

Liferay provides a rich API including many utility classes and also provides custom taglibs to ease development of JSPs, like:

  1. liferay-ui: It provides UI-related pre-styled structures and functional tools like the search container which handles search pagination.
  2. liferay-portlet: It is a wrapper around the tag and provides Liferay-specific portlet functionality.
  3. liferay-util
  4. liferay-theme
  5. liferay-security
  6. aui (AlloyUI taglib): A wrapper around Alloy UI to provide consistent UI components across the portal.

Liferay uses as the built-in Javascript library, which is a library built upon .

Liferay also provides the Service-builder, a declarative service and persistence layer code generator. The generated interfaces can also be exposed as web-services.

Known Liferay Integrations with third-party softwares

  1. Alfresco (Blog about Alfresco Integration)

Beginners' resources

  1. Liferay Developer Network: The place to start - with many tutorials
  2. Liferay Portal Wiki

Additional day to day resources

  1. Latest Liferay User Guide
  2. Latest Liferay Development Guide
  3. Liferay API Docs by version
  4. Liferay Marketplace: the place for getting plugins for all your needs
  5. Liferay Forums

Other Liferay resources

  1. Liferay Releases
  2. Previous Versions
  3. Liferay on Git-hub
  4. Alloy UI Demos
  5. Liferay in Action (official guide to Liferay development)
  6. Liferay Development Style guidelines
  7. Liferay Marketplace
  8. Liferay Portlets

Frequent/Interesting Questions

  1. To Go or Not To Go with Liferay?
  2. Restrictions/Disadvantages of developing portlets with Liferay
  3. Accessing User in Liferay Portlet
  4. Testing for custom plugin portlet
  5. Accessing logged-in User in a liferay portlet
  6. Programmatically get the url of a page in liferay
6475 questions
1
vote
0 answers

Liferay error: The TagExtraInfo class for "portlet:renderURL" (com.liferay.taglib.portlet.RenderURLTei) could not be instantiated

I'm attempting to create a very simple portlet using Liferay 7.3.4 by following these instructions: https://help.liferay.com/hc/en-us/articles/360017871312-Writing-the-My-Greeting-Portlet I've cut out everything but the following code, but still…
Randy Leonard
  • 655
  • 7
  • 21
1
vote
0 answers

How to configure the MVC portlet to use the keys from Language_forCustomer.properties?

I have a requirement on jsp labels keys which are in (*.jsp) page I need to call the keys from the specific .properties file knowing that each customer has a .properties file. I already posted this ( well explained ) in the liferay forum but still…
m.irouch
  • 61
  • 11
1
vote
2 answers

Liferay - filtering and refining contents based on checkboxes?

Displaying content’s based on category and tags criteria works well but how should we get results by filtering and refining results based on checkbox(es) selected? This is what I want to achieve – the checkbox(es) criteria are same as defined in…
1
vote
0 answers

Connect liferay 7.3 (Docker container) with mysql DB(not in container)

I have a docker file for running liferay application and its perfectly running inside container. I want to communicate with Mysql DB. Here one condition is DB should not be inside a container. Here i changed settings in "portal-ext.properties" file.…
Rohith R
  • 11
  • 1
1
vote
0 answers

Why am I getting error while trying to access a portal on Liferay 4.2.1?

I'm trying to cluster Web Session on Liferay 4.2.1. I've followed the specifications in the documentation. When I try to access the portal I get a : ERROR [org.apache.catalina.core.ContainerBase.[Catalina].[local.host].[/].[MainServlet]]…
Sergiu
  • 2,502
  • 6
  • 35
  • 57
1
vote
4 answers

Liferay IDE : Transform a maven project to a liferay IDE compatible project

I create my portlets using Maven, and I'm using Liferay IDE (an eclipse based IDE), but I can't deploy my project directly from Liferay IDE because my project don't support this. There is a way to add the Liferay's capability to the project, but it…
Marouane Gazanayi
  • 5,063
  • 6
  • 39
  • 58
1
vote
1 answer

Liferay DXP JSF portlet logging in custom file and location

The JSF portlet's class is the GenericFacesPortlet (which means not the MVCPortlet) and slf4j is used. I tried the resources/META-INF/portlet-log4j.xml (with dtd), but I cannot achieve logging in custom file and location. Any hints would be…
Gunnar
  • 383
  • 4
  • 18
1
vote
1 answer

MVCActionCommand vs MVCResourceCommand

I cant see the difference between MVCActionCommand vs MVCResourceCommand in coding OSGI portlets. The two interfaces seem to be interchangeable. With ActionResponse you can jump to a URL. With ResourceResponse, I can set the content to view the…
user9718914
  • 103
  • 9
1
vote
1 answer

liferay-maven-plugin + direct-deploy configuration for DXP

I'm currently on Liferay 6.2 (with Tomcat), and I can configure the liferay-maven-plugin in my Liferay hook project's maven pom.xml as below, in order to pre-process my hook WAR for hot deployment (using the direct-deploy goal of the…
Vasan
  • 4,810
  • 4
  • 20
  • 39
1
vote
1 answer

JAXB ClassNotFoundException com.sun.xml.bind.v2.ContextFactory when hot-deploying camel routes

Yes I know, there are numerous questions and answers since JAXB was removed from JDK 11. But this one is specific. I've a Wildfly Server (tested with 18.0.1 and 16.0.0) running with the wildfly-camel subsystem 11.0.1 patch applied. The patch…
Andre Kreienbring
  • 2,457
  • 11
  • 16
1
vote
1 answer

Unable to use template file as a template for the component in Liferay angular portlet

Unable to use the template file as a template for the component in Liferay angular portlet. The same syntax is working fine with the plain angular application. app.component.ts import { Component } from '@angular/core'; @Component({ …
Vijay Sasvadiya
  • 384
  • 1
  • 3
  • 7
1
vote
1 answer

Liferay 7.2 api json url 404

I have: Eclispse Version: 2019-06 (4.12.0) Build id: 20190614-1200 Liferay 7.2.0 CE GA1. I use Gradle. I followed this tutorial: https://www.liferaystack.com/2017/11/rest-extender-and-jax-rs-restful-web-service-in-liferay-7-dxp.html I created a rest…
MarioProject
  • 417
  • 4
  • 25
1
vote
1 answer

Font-Awesome issue in Liferay 7

I'm using Liferay Developer Studio 3.8 and Liferay Portal Tomcat 7.3.1. I was wondering how can I insert Font-Awesome icons in a portlet (portlet4SpringMVC with JSPX in a widget's page) generated through IDE neither theme generator nor Blade…
1
vote
2 answers

Writing first Liferay application: how to deploy module to server + error: A full JDK (not just JRE) is required

I'm following Liferay getting-started example to develop my first we app with Liferay IDE in which it is mentioned: Even though all you’ve done is generate it, the guestbook-web project is ready to be built and deployed to Liferay DXP. Make sure…
Megidd
  • 7,089
  • 6
  • 65
  • 142
1
vote
2 answers

How to Make Rest API call from a .jsp page

I am currently new to Java and I would like to see an example of how someone has made a request using java code to this link http://jsonplaceholder.typicode.com/posts , and successfully displayed the response in response.jsp page. Problem…
VicMo
  • 37
  • 1
  • 8