Issue
DXP may not be able to display any portal pages due to HTTP 500 status as well as showing this error on the interface:
An unexpected system error occurred.
Unsupported template manager ftl
and this one in the Liferay logs:
ERROR [main][LayoutTemplateLocalServiceImpl:523] Unable to get layout template columns com.liferay.portal.kernel.template.TemplateException: Unsupported template manager ftl at com.liferay.portal.kernel.template.TemplateManagerUtil._getTemplateManagerChecked(TemplateManagerUtil.java:245) at com.liferay.portal.kernel.template.TemplateManagerUtil._getTemplate(TemplateManagerUtil.java:201) at com.liferay.portal.kernel.template.TemplateManagerUtil.getTemplate(TemplateManagerUtil.java:80) at com.liferay.portal.service.impl.LayoutTemplateLocalServiceImpl._getColumns(LayoutTemplateLocalServiceImpl.java:512) at com.liferay.portal.service.impl.LayoutTemplateLocalServiceImpl.readLayoutTemplate(LayoutTemplateLocalServiceImpl.java:391) at com.liferay.portal.service.impl.LayoutTemplateLocalServiceImpl._readLayoutTemplates(LayoutTemplateLocalServiceImpl.java:597) at com.liferay.portal.service.impl.LayoutTemplateLocalServiceImpl.init(LayoutTemplateLocalServiceImpl.java:262) at com.liferay.portal.kernel.service.LayoutTemplateLocalServiceUtil.init(LayoutTemplateLocalServiceUtil.java:96)
In case no custom theme is applied, the error will be instead:
ERROR [https-redacted-nio-8443-exec-4][error_jsp:646] javax.servlet.ServletException: javax.servlet.jsp.JspException: com.liferay.portal.kernel.template.TemplateException: Unsupported template resource loader ftl javax.servlet.ServletException: javax.servlet.jsp.JspException: com.liferay.portal.kernel.template.TemplateException: Unsupported template resource loader ftl at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:664) at com.liferay.taglib.servlet.PageContextWrapper.handlePageException(PageContextWrapper.java:173) at org.apache.jsp.html.common.themes.portal_jsp._jspService(portal_jsp.java:714) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
[...]
Caused by: com.liferay.portal.kernel.template.TemplateException: Unsupported template resource loader ftl
at com.liferay.portal.kernel.template.TemplateResourceLoaderUtil._getTemplateResourceLoader(TemplateResourceLoaderUtil.java:137)
at com.liferay.portal.kernel.template.TemplateResourceLoaderUtil._hasTemplateResource(TemplateResourceLoaderUtil.java:154)
at com.liferay.portal.kernel.template.TemplateResourceLoaderUtil.hasTemplateResource(TemplateResourceLoaderUtil.java:72)
at com.liferay.taglib.util.ThemeUtil.doIncludeFTL(ThemeUtil.java:223)
at com.liferay.taglib.util.ThemeUtil.doDispatch(ThemeUtil.java:158)
at com.liferay.taglib.util.ThemeUtil.includeFTL(ThemeUtil.java:97)
at com.liferay.taglib.util.ThemeUtil.include(ThemeUtil.java:82)
at com.liferay.taglib.theme.IncludeTag.doEndTag(IncludeTag.java:34)
at org.apache.jsp.html.common.themes.portal_jsp._jspx_meth_liferay_002dtheme_005finclude_005f1(portal_jsp.java:759)
at org.apache.jsp.html.common.themes.portal_jsp._jspService(portal_jsp.java:689)
... 190 more
Environment
- Liferay DXP 7.1
Resolution
1) Stop the affected bundle
2) Add a line include-and-override=portal-developer.properties
in the portal-ext.properties file. For further information, refer to this page: Felix Gogo Shell
3) Start the bundle and wait for the problem to happen again
4) Open the Gogo Shell console through the telnet localhost 11311
command
5) Check for Resolved bundles Liferay Portal Template - Impl and Liferay Portal Template FreeMarker, for example:
g! lb template
START LEVEL 20
ID|State |Level|Name
137|Active | 10|Liferay Web Experience - Liferay Portlet Display Template - Impl (1.0.10)|1.0.10
138|Active | 10|Liferay Portlet Display Template Implementation (1.0.10)|1.0.10
139|Active | 10|Liferay Portlet Display Template Web (3.0.7)|3.0.7
187|Active | 10|Liferay Foundation - Liferay Portal Template - API (1.0.11)|1.0.11
188|Active | 10|Liferay Portal Template Soy API (1.0.2)|1.0.2
454|Active | 10|Liferay Web Experience - Liferay Portlet Display Template - API (1.0.10)|1.0.10
455|Active | 10|Liferay Portlet Display Template API (1.0.5)|1.0.5
635|Resolved | 10|Liferay Foundation - Liferay Portal Template - Impl (1.0.11)|1.0.11
636|Resolved | 10|Liferay Portal Template FreeMarker (4.0.18)|4.0.18
637|Active | 10|Liferay Portal Template Soy Implementation (1.0.16)|1.0.16
638|Active | 10|Liferay Portal Template Velocity (3.0.17)|3.0.17
639|Active | 10|Liferay Portal Template XSL (3.0.5)|3.0.5
640|Active | 10|Liferay Portal Template Soy Context Contributor (2.0.0)|2.0.0
688|Active | 10|Liferay Layout Page Template Service (1.0.28)|1.0.28
735|Active | 10|Liferay Petra Mail Template (1.0.3)|1.0.3
875|Active | 10|Liferay Layout Page Template API (1.5.0)|1.5.0
g!
6) Start both bundles through their IDs (in the above example, 635 and 636)
g! start 635 636
7) Check again if they are in Active status:
g! lb Template
START LEVEL 20
ID|State |Level|Name
137|Active | 10|Liferay Web Experience - Liferay Portlet Display Template - Impl (1.0.10)|1.0.10
138|Active | 10|Liferay Portlet Display Template Implementation (1.0.10)|1.0.10
139|Active | 10|Liferay Portlet Display Template Web (3.0.7)|3.0.7
187|Active | 10|Liferay Foundation - Liferay Portal Template - API (1.0.11)|1.0.11
188|Active | 10|Liferay Portal Template Soy API (1.0.2)|1.0.2
454|Active | 10|Liferay Web Experience - Liferay Portlet Display Template - API (1.0.10)|1.0.10
455|Active | 10|Liferay Portlet Display Template API (1.0.5)|1.0.5
635|Active | 10|Liferay Foundation - Liferay Portal Template - Impl (1.0.11)|1.0.11
636|Active | 10|Liferay Portal Template FreeMarker (4.0.18)|4.0.18
637|Active | 10|Liferay Portal Template Soy Implementation (1.0.16)|1.0.16
638|Active | 10|Liferay Portal Template Velocity (3.0.17)|3.0.17
639|Active | 10|Liferay Portal Template XSL (3.0.5)|3.0.5
640|Active | 10|Liferay Portal Template Soy Context Contributor (2.0.0)|2.0.0
688|Active | 10|Liferay Layout Page Template Service (1.0.28)|1.0.28
735|Active | 10|Liferay Petra Mail Template (1.0.3)|1.0.3
875|Active | 10|Liferay Layout Page Template API (1.5.0)|1.5.0
g!
8) Refresh your portal's homepage, it should now work correctly
9) Stop the portal, remove include-and-override=portal-developer.properties
in the portal-ext.properties, start the portal again