Message Boards

Liferay 7.2 - How to add Display Page programmatically?

Fabio Carvalho, modified 4 Years ago.

Liferay 7.2 - How to add Display Page programmatically?

Junior Member Posts: 81 Join Date: 6/25/19 Recent Posts
Hi,

I am trying to add a Display Page programmatically. I am trying to add like this:
Layout layout = LayoutLocalServiceUtil.addLayout(
    themeDisplay.getUserId(), 
    groupId, 
    true, 
    LayoutConstants.DEFAULT_PARENT_LAYOUT_ID, 
    "Display Page", 
    null, 
    null, 
    LayoutConstants.TYPE_ASSET_DISPLAY, 
    true,
    "/display-page",
    new ServiceContext()
);

But when I try to run it I get a "com.liferay.portal.kernel.exception.LayoutTypeException". How to correctly add a new Display Page programmatically?
Tom Aerts, modified 4 Years ago.

RE: Liferay 7.2 - How to add Display Page programmatically?

New Member Posts: 17 Join Date: 8/25/17 Recent Posts
In case you want to create the actual page: ignore this answer.

In case you want to add the display page to an article, do the following (my example uses Display Page Templates, not widget pages with Asset Publishers:

1) Create a DisplayPageEntry for your article (0 = LayoutPageTemplateEntryId. In our codebase we set the actual displaypage in a AssetDisplayPageEntryServiceWrapper, hence why it's 0 here)
[color=#f6f6f6][font="Consolas"][size=10.5pt]    [color=#f92772]long [/color]cNameId [color=#f92772]= [/color][b][color=#66d9ee][i]PortalUtil[/i][/color][/b][color=#f92772].[/color][color=#cfbfad]getClassNameId[/color][color=#66d9ee]([/color][b][color=#66d9ee][i]JournalArticle[/i][/color][/b][color=#f92772].class[/color][color=#66d9ee])[/color][color=#f92772];
[/color][color=#f92772]    [/color][b][color=#66d9ee][i]AssetDisplayPageEntry [/i][/color][/b]ade [color=#f92772]=
[/color][b][color=#66d9ee][i]AssetDisplayPageEntryLocalServiceUtil[/i][/color][/b][color=#f92772].[/color][color=#cfbfad]addAssetDisplayPageEntry[/color][color=#66d9ee](
[/color][color=#66d9ee]      [/color][color=#fe9720]serviceContext[/color][color=#f92772].[/color][b][color=#96e229]getUserId[/color][/b][color=#66d9ee]()[/color][color=#f92772], [/color][color=#fe9720]groupId[/color][color=#f92772], [/color]cNameId[color=#f92772],[/color]article[color=#f92772].[/color][b][color=#96e229]getResourcePrimKey[/color][/b][color=#66d9ee]()[/color][color=#f92772],
[/color][color=#f92772]      [/color][color=#ae81ff]0[/color][color=#f92772], [/color][b][color=#66d9ee][i]AssetDisplayPageConstants[/i][/color][/b][color=#f92772].[/color][b][color=#66d9ee]TYPE_SPECIFIC[/color][/b][color=#f92772], new [/color]ServiceContext[color=#66d9ee]()
[/color][color=#66d9ee])[/color][color=#f92772];[/color][/size][/font][/color]
2) Find the LayoutPageTemplateEntry (== the Display Page Template you created in the front-end/from code)
[color=#f6f6f6][font="Consolas"][size=10.5pt][color=#f92772]return [/color][b][color=#66d9ee][i]LayoutPageTemplateEntryLocalServiceUtil
[/i][/color][/b][b][color=#66d9ee][i]      [/i][/color][/b][color=#f92772].[/color][color=#cfbfad]fetchLayoutPageTemplateEntry[/color][color=#66d9ee]([/color][color=#fe9720]groupId[/color][color=#f92772], "name_of_your_page"[/color][color=#66d9ee])[/color][color=#f92772];[/color][/size][/font][/color]

3) Create the proper AssetDisplayPageEntry (code from AssetDisplayPageEntryServiceWrapper)
[color=#f6f6f6][font="Consolas"][size=10.5pt][color=#d9e577]@Override
[/color][color=#f92772]public [/color][b][color=#66d9ee][i]AssetDisplayPageEntry [/i][/color][/b][b][color=#a7e22e]addAssetDisplayPageEntry[/color][/b][color=#66d9ee](
[/color][color=#66d9ee]      [/color][color=#f92772]long [/color][color=#fe9720]userId[/color][color=#f92772], long [/color][color=#fe9720]groupId[/color][color=#f92772], long [/color][color=#fe9720]classNameId[/color][color=#f92772], long [/color][color=#fe9720]classPK[/color][color=#f92772],
[/color][color=#f92772]      long [/color]layoutPageTemplateEntryId[color=#f92772], int [/color]type[color=#f92772],
[/color][color=#f92772]      [/color][b][color=#66d9ee][i]com.liferay.portal.kernel.service.ServiceContext [/i][/color][/b][color=#fe9720]serviceContext[/color][color=#66d9ee]) [/color][color=#f92772]throws [/color][b][color=#66d9ee][i]PortalException [/i][/color][/b][color=#66d9ee]{
[/color][color=#66d9ee]
[/color][color=#66d9ee]   [/color][b][color=#66d9ee][i]JournalArticleResource [/i][/color][/b]res [color=#f92772]= [/color][color=#66d9ee]journalArticleResourceLocalService[/color][color=#f92772].[/color][b][color=#96e229]getJournalArticleResource[/color][/b][color=#66d9ee]([/color][color=#fe9720]classPK[/color][color=#66d9ee])[/color][color=#f92772];
[/color][color=#f92772]   [/color][b][color=#66d9ee][i]JournalArticle [/i][/color][/b]article [color=#f92772]= [/color][color=#66d9ee]journalArticleLocalService[/color][color=#f92772].[/color][b][color=#96e229]getArticle[/color][/b][color=#66d9ee]([/color][color=#fe9720]groupId[/color][color=#f92772], [/color]res[color=#f92772].[/color][b][color=#96e229]getArticleId[/color][/b][color=#66d9ee]())[/color][color=#f92772];
[/color][color=#f92772]   [/color][b][color=#66d9ee][i]LayoutPageTemplateEntry [/i][/color][/b]lpte [color=#f92772]= [/color][b][color=#96e229]fetchDisplayPage[/color][/b][color=#66d9ee]([/color]article[color=#f92772].[/color][b][color=#96e229]getDDMStructureKey[/color][/b][color=#66d9ee]()[/color][color=#f92772], [/color][color=#fe9720]groupId[/color][color=#66d9ee])[/color][color=#f92772];
[/color][color=#f92772]   if [/color][color=#66d9ee]([/color]lpte [color=#f92772]!= null[/color][color=#66d9ee]){
[/color][color=#66d9ee]      [/color]article[color=#f92772].[/color][b][color=#96e229]setLayoutUuid[/color][/b][color=#66d9ee]([/color][color=#e6da74]""[/color][color=#66d9ee])[/color][color=#f92772];
[/color][color=#f92772]      [/color][color=#66d9ee]journalArticleLocalService[/color][color=#f92772].[/color][b][color=#96e229]updateJournalArticle[/color][/b][color=#66d9ee]([/color]article[color=#66d9ee])[/color][color=#f92772];
[/color][color=#f92772]      [/color]type [color=#f92772]= [/color][b][color=#66d9ee][i]AssetDisplayPageConstants[/i][/color][/b][color=#f92772].[/color][b][color=#66d9ee]TYPE_SPECIFIC[/color][/b][color=#f92772];
[/color][color=#f92772]      [/color]layoutPageTemplateEntryId [color=#f92772]= [/color]lpte[color=#f92772].[/color][b][color=#96e229]getLayoutPageTemplateEntryId[/color][/b][color=#66d9ee]()[/color][color=#f92772];
[/color][color=#f92772]   [/color][color=#66d9ee]}
[/color][color=#66d9ee]
[/color][color=#66d9ee]   [/color][color=#f92772]return super.[/color][b][color=#96e229]addAssetDisplayPageEntry[/color][/b][color=#66d9ee](
[/color][color=#66d9ee]         [/color][color=#fe9720]userId[/color][color=#f92772], [/color][color=#fe9720]groupId[/color][color=#f92772], [/color][color=#fe9720]classNameId[/color][color=#f92772], [/color][color=#fe9720]classPK[/color][color=#f92772],
[/color][color=#f92772]         [/color]layoutPageTemplateEntryId[color=#f92772], [/color]type[color=#f92772],[/color][color=#fe9720]serviceContext[/color][color=#66d9ee])[/color][color=#f92772];
[/color][color=#66d9ee]}[/color][/size][/font][/color]

Your setup will probably be different, but you should be able to gather the building blocks you need from these code fragments.

p.s.: If you do use widget pages, I believe you just need to do article.setLayoutUuid("uuid of the widget page that you found through LayoutService.someMethod()") & ignore the LayoutPage stuff
Fabio Carvalho, modified 4 Years ago.

RE: Liferay 7.2 - How to add Display Page programmatically?

Junior Member Posts: 81 Join Date: 6/25/19 Recent Posts
Hi Tom,

This will be usefull, but I still didn't find any solution to my problem. I have already tried to add with another methods but I allways get the "com.liferay.portal.kernel.exception.LayoutTypeException" error.

Here is the full log of the Exception:
com.liferay.portal.kernel.exception.LayoutTypeException
    at com.liferay.portal.service.impl.LayoutLocalServiceHelper.validate(LayoutLocalServiceHelper.java:290)
    at com.liferay.portal.service.impl.LayoutLocalServiceImpl.addLayout(LayoutLocalServiceImpl.java:232)
    at com.liferay.portal.service.impl.LayoutLocalServiceImpl.addLayout(LayoutLocalServiceImpl.java:445)
    at sun.reflect.GeneratedMethodAccessor532.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.liferay.portal.service.impl.LayoutLocalServiceStagingAdvice$LayoutLocalServiceStagingInvocationHandler._invoke(LayoutLocalServiceStagingAdvice.java:766)
    at com.liferay.portal.service.impl.LayoutLocalServiceStagingAdvice$LayoutLocalServiceStagingInvocationHandler.invoke(LayoutLocalServiceStagingAdvice.java:647)
    at com.sun.proxy.$Proxy356.addLayout(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor532.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:66)
    at com.sun.proxy.$Proxy1859.addLayout(Unknown Source)
    at com.liferay.portal.kernel.service.LayoutLocalServiceWrapper.addLayout(LayoutLocalServiceWrapper.java:177)
    at sun.reflect.GeneratedMethodAccessor532.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:66)
    at com.sun.proxy.$Proxy1860.addLayout(Unknown Source)
    at com.liferay.portal.kernel.service.LayoutLocalServiceWrapper.addLayout(LayoutLocalServiceWrapper.java:177)
    at com.liferay.layout.change.tracking.internal.service.CTLayoutLocalServiceWrapper.lambda$addLayout$1(CTLayoutLocalServiceWrapper.java:96)
    at com.liferay.change.tracking.internal.engine.CTManagerImpl.executeModelUpdate(CTManagerImpl.java:142)
    at com.liferay.layout.change.tracking.internal.service.CTLayoutLocalServiceWrapper.addLayout(CTLayoutLocalServiceWrapper.java:95)
    at sun.reflect.GeneratedMethodAccessor532.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:66)
    at com.sun.proxy.$Proxy1860.addLayout(Unknown Source)
    at com.liferay.portal.kernel.service.LayoutLocalServiceWrapper.addLayout(LayoutLocalServiceWrapper.java:177)
    at com.gra.portal.importer.wrappers.LayoutWrapper.addLayout(LayoutWrapper.java:54)
    at sun.reflect.GeneratedMethodAccessor532.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:66)
    at com.sun.proxy.$Proxy1860.addLayout(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor532.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:50)
    at com.liferay.portal.spring.transaction.TransactionInterceptor.lambda$invoke$0(TransactionInterceptor.java:64)
    at com.liferay.portal.spring.transaction.DefaultTransactionExecutor._execute(DefaultTransactionExecutor.java:128)
    at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:51)
    at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:62)
    at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57)
    at com.liferay.portal.service.ServiceContextAdvice.invoke(ServiceContextAdvice.java:60)
    at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57)
    at com.liferay.portal.kernel.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:65)
    at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57)
    at com.liferay.portal.spring.aop.AopInvocationHandler.invoke(AopInvocationHandler.java:49)
    at com.sun.proxy.$Proxy221.addLayout(Unknown Source)
    at com.liferay.portal.kernel.service.LayoutLocalServiceUtil.addLayout(LayoutLocalServiceUtil.java:182)
    at com.gra.portal.importer.portlet.ImporterPortletV2.doView(ImporterPortletV2.java:106)
    at com.liferay.portal.kernel.portlet.LiferayPortlet.doDispatch(LiferayPortlet.java:303)
    at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.doDispatch(MVCPortlet.java:478)
    at javax.portlet.GenericPortlet.render(GenericPortlet.java:291)
    at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.render(MVCPortlet.java:302)
    at com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:127)
    at com.liferay.portlet.ScriptDataPortletFilter.doFilter(ScriptDataPortletFilter.java:58)
    at com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:124)
    at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:71)
    at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:115)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:153)
    at org.eclipse.equinox.http.servlet.internal.servlet.ResponseStateHandler.processRequest(ResponseStateHandler.java:62)
    at org.eclipse.equinox.http.servlet.internal.context.DispatchTargets.doDispatch(DispatchTargets.java:120)
    at org.eclipse.equinox.http.servlet.internal.servlet.RequestDispatcherAdaptor.include(RequestDispatcherAdaptor.java:48)
    at com.liferay.portlet.internal.InvokerPortletImpl.invoke(InvokerPortletImpl.java:573)
    at com.liferay.portlet.internal.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:670)
    at com.liferay.portlet.internal.InvokerPortletImpl.render(InvokerPortletImpl.java:362)
    at com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet.lambda$render$0(MonitoringInvokerPortlet.java:280)
    at com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet._render(MonitoringInvokerPortlet.java:383)
    at com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet.render(MonitoringInvokerPortlet.java:278)
    at org.apache.jsp.html.portal.render_005fportlet_jsp._jspService(Unknown Source)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at com.liferay.portal.servlet.DirectRequestDispatcher.include(DirectRequestDispatcher.java:64)
    at com.liferay.portal.servlet.DirectRequestDispatcherFactoryImpl$IndirectRequestDispatcher.include(DirectRequestDispatcherFactoryImpl.java:202)
    at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.doDispatch(ClassLoaderRequestDispatcherWrapper.java:79)
    at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.include(ClassLoaderRequestDispatcherWrapper.java:53)
    at com.liferay.portal.servlet.TransferHeadersHelperImpl$TransferHeadersRequestDispatcher.include(TransferHeadersHelperImpl.java:162)
    at com.liferay.portlet.internal.PortletContainerImpl._render(PortletContainerImpl.java:918)
    at com.liferay.portlet.internal.PortletContainerImpl.lambda$render$2(PortletContainerImpl.java:226)
    at com.liferay.portlet.internal.PortletContainerImpl._preserveGroupIds(PortletContainerImpl.java:427)
    at com.liferay.portlet.internal.PortletContainerImpl.render(PortletContainerImpl.java:214)
    at com.liferay.portlet.SecurityPortletContainerWrapper.render(SecurityPortletContainerWrapper.java:147)
    at com.liferay.portlet.RestrictPortletContainerWrapper.lambda$render$0(RestrictPortletContainerWrapper.java:131)
    at com.liferay.portlet.RestrictPortletContainerWrapper._render(RestrictPortletContainerWrapper.java:192)
    at com.liferay.portlet.RestrictPortletContainerWrapper.render(RestrictPortletContainerWrapper.java:129)
    at com.liferay.portal.kernel.portlet.PortletContainerUtil.render(PortletContainerUtil.java:215)
    at com.liferay.portal.layoutconfiguration.util.PortletRenderer._render(PortletRenderer.java:209)
    at com.liferay.portal.layoutconfiguration.util.PortletRenderer.render(PortletRenderer.java:87)
    at com.liferay.portal.layoutconfiguration.util.RuntimePageImpl.doProcessTemplate(RuntimePageImpl.java:593)
    at com.liferay.portal.layoutconfiguration.util.RuntimePageImpl.doDispatch(RuntimePageImpl.java:359)
    at com.liferay.portal.layoutconfiguration.util.RuntimePageImpl.processTemplate(RuntimePageImpl.java:160)
    at com.liferay.portal.layoutconfiguration.util.RuntimePageImpl.processTemplate(RuntimePageImpl.java:185)
    at com.liferay.portal.kernel.layoutconfiguration.util.RuntimePageUtil.processTemplate(RuntimePageUtil.java:105)
    at org.apache.jsp.html.portal.layout.view.portlet_jsp._jspService(Unknown Source)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at com.liferay.portal.servlet.DirectRequestDispatcher.include(DirectRequestDispatcher.java:64)
    at com.liferay.portal.servlet.DirectRequestDispatcherFactoryImpl$IndirectRequestDispatcher.include(DirectRequestDispatcherFactoryImpl.java:202)
    at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.doDispatch(ClassLoaderRequestDispatcherWrapper.java:79)
    at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.include(ClassLoaderRequestDispatcherWrapper.java:53)
    at com.liferay.portal.servlet.TransferHeadersHelperImpl$TransferHeadersRequestDispatcher.include(TransferHeadersHelperImpl.java:162)
    at com.liferay.portal.model.impl.LayoutTypeControllerImpl.includeLayoutContent(LayoutTypeControllerImpl.java:171)
    at com.liferay.portal.model.impl.LayoutImpl.includeLayoutContent(LayoutImpl.java:885)
    at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:418)
    at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:174)
    at com.liferay.portal.struts.PortalRequestProcessor._process(PortalRequestProcessor.java:415)
    at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:155)
    at com.liferay.portal.internal.servlet.MainServlet.doGet(MainServlet.java:203)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    at com.liferay.portal.internal.servlet.MainServlet.service(MainServlet.java:639)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:124)
    at com.liferay.portal.servlet.filters.password.modified.PasswordModifiedFilter.processFilter(PasswordModifiedFilter.java:62)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
    at com.liferay.portal.servlet.filters.secure.BaseAuthFilter.processFilter(BaseAuthFilter.java:360)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
    at com.liferay.portal.monitoring.internal.servlet.filter.MonitoringFilter.processFilter(MonitoringFilter.java:181)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:106)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
    at com.liferay.friendly.url.internal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:398)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at com.liferay.portal.servlet.ServletAdapter.service(ServletAdapter.java:99)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:124)
    at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
    at com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(I18nFilter.java:370)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.servlet.filters.password.modified.PasswordModifiedFilter.processFilter(PasswordModifiedFilter.java:62)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
    at com.liferay.portal.servlet.filters.secure.BaseAuthFilter.processFilter(BaseAuthFilter.java:360)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
    at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:266)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:147)
    at com.liferay.portal.monitoring.internal.servlet.filter.MonitoringFilter.processFilter(MonitoringFilter.java:181)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:106)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
    at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:377)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:196)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:196)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99)
    at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
    at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
    at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
    at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:389)
    at com.liferay.portal.servlet.filters.urlrewrite.UrlRewriteFilter.processFilter(UrlRewriteFilter.java:65)
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:49)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:215)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:175)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:175)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:196)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:99)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:106)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
Fabio Carvalho, modified 4 Years ago.

RE: Liferay 7.2 - How to add Display Page programmatically?

Junior Member Posts: 81 Join Date: 6/25/19 Recent Posts
Looks like the "LayoutTypeException" is of the type NOT_INSTANCEABLE. Any idea on how to solve this?