RE: Error adding multiple JSF Portlets in a single page

Amos Fong, modified 5 Years ago. Junior Member Posts: 38 Join Date: 3/3/20 Recent Posts
Hi all,

I'm developing an application on Liferay CE 7.3 ga1, by using JSF+Primefaces portlet built on a Liferay Workspace.
When I configure a page with one single portlet, it works fine.
When I add multiple portlets, I can see correctly the first one, the others display the message below:

this is the log I get from the webpage (on console I have no log):
[code]java.lang.NoSuchMethodError: com.liferay.portal.kernel.servlet.taglib.util.OutputData.getData(Ljava/lang/String;Ljava/lang/String;)Lcom/liferay/portal/kernel/util/StringBundler;
	at com.liferay.faces.bridge.ext.event.internal.LiferayPageTopPhaseListenerCompat.getPageTop(LiferayPageTopPhaseListenerCompat.java:103)
	at com.liferay.faces.bridge.ext.event.internal.LiferayPageTopPhaseListenerCompat.beforePhase(LiferayPageTopPhaseListenerCompat.java:83)
	at com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:228)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:99)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
	at com.liferay.faces.bridge.internal.BridgePhaseHeaderRenderCommon.executeRender(BridgePhaseHeaderRenderCommon.java:253)
	at com.liferay.faces.bridge.internal.BridgePhaseRenderCompatImpl.execute(BridgePhaseRenderCompatImpl.java:57)
	at com.liferay.faces.bridge.internal.BridgePhaseRenderImpl.execute(BridgePhaseRenderImpl.java:57)
	at com.liferay.faces.bridge.internal.BridgeImpl.doFacesRequest(BridgeImpl.java:157)
	at javax.portlet.faces.GenericFacesPortlet.doView(GenericFacesPortlet.java:753)
	at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:397)
	at javax.portlet.faces.GenericFacesPortlet.doDispatch(GenericFacesPortlet.java:669)
	at javax.portlet.GenericPortlet.render(GenericPortlet.java:291)
	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 com.liferay.portal.osgi.web.wab.extender.internal.adapter.AsyncAttributeAdapterServlet.service(AsyncAttributeAdapterServlet.java:85)
	at com.liferay.portal.osgi.web.wab.extender.internal.adapter.ServletExceptionAdapter.service(ServletExceptionAdapter.java:76)
	at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:153)
	at org.eclipse.equinox.http.servlet.internal.servlet.FilterChainImpl.doFilter(FilterChainImpl.java:50)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:124)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:104)
	at com.liferay.portal.osgi.web.wab.extender.internal.adapter.FilterExceptionAdapter.doFilter(FilterExceptionAdapter.java:46)
	at org.eclipse.equinox.http.servlet.internal.registration.FilterRegistration.doFilter(FilterRegistration.java:121)
	at org.eclipse.equinox.http.servlet.internal.servlet.FilterChainImpl.doFilter(FilterChainImpl.java:45)
	at org.eclipse.equinox.http.servlet.internal.servlet.ResponseStateHandler.processRequest(ResponseStateHandler.java:70)
	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:571)
	at com.liferay.portlet.internal.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:661)
	at com.liferay.portlet.internal.InvokerPortletImpl.render(InvokerPortletImpl.java:344)
	at com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet.lambda$render$0(MonitoringInvokerPortlet.java:259)
	at com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet$$Lambda$9684/1642491374.render(Unknown Source)
	at com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet._render(MonitoringInvokerPortlet.java:363)
	at com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet.render(MonitoringInvokerPortlet.java:257)
	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:190)
	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:908)
	at com.liferay.portlet.internal.PortletContainerImpl.lambda$render$2(PortletContainerImpl.java:223)
	at com.liferay.portlet.internal.PortletContainerImpl$$Lambda$9678/423067727.get(Unknown Source)
	at com.liferay.portlet.internal.PortletContainerImpl._preserveGroupIds(PortletContainerImpl.java:425)
	at com.liferay.portlet.internal.PortletContainerImpl.render(PortletContainerImpl.java:211)
	at com.liferay.portlet.SecurityPortletContainerWrapper.render(SecurityPortletContainerWrapper.java:145)
	at com.liferay.portlet.RestrictPortletContainerWrapper.lambda$render$0(RestrictPortletContainerWrapper.java:128)
	at com.liferay.portlet.RestrictPortletContainerWrapper$$Lambda$9677/134202003.render(Unknown Source)
	at com.liferay.portlet.RestrictPortletContainerWrapper._render(RestrictPortletContainerWrapper.java:189)
	at com.liferay.portlet.RestrictPortletContainerWrapper.render(RestrictPortletContainerWrapper.java:126)
	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:190)
	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:166)
	at com.liferay.portal.model.impl.LayoutImpl.includeLayoutContent(LayoutImpl.java:890)
	at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:413)
	at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:170)
	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:205)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
	at com.liferay.portal.internal.servlet.MainServlet.service(MainServlet.java:622)
	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:340)
	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:183)
	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:104)
	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:409)
	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:368)
	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:340)
	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:264)
	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.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:88)
	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.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:249)
	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:183)
	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:104)
	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:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)
The follwing is my pom.xml
<!--?xml version="1.0" encoding="UTF-8"?-->
<project xmlns="http://maven.apache.org/POM/4.0.0"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
&nbsp;&nbsp; &nbsp;<modelversion>4.0.0</modelversion>
&nbsp;&nbsp; &nbsp;<parent>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<artifactid>cloud-simposium-wars</artifactid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<groupid>cloud.simposium</groupid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<version>1.0.0</version>
&nbsp;&nbsp; &nbsp;</parent>
&nbsp;&nbsp; &nbsp;<groupid>simposium-presentation-input</groupid>
&nbsp;&nbsp; &nbsp;<artifactid>simposium-presentation-input</artifactid>
&nbsp;&nbsp; &nbsp;<packaging>war</packaging>
&nbsp;&nbsp; &nbsp;<name>simposium-presentation-input</name>
&nbsp;&nbsp; &nbsp;<version>1.0.0</version>
&nbsp;&nbsp; &nbsp;<build>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<plugins>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<plugin>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<artifactid>maven-compiler-plugin</artifactid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<version>3.3</version>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<configuration>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<encoding>UTF-8</encoding>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<source>1.8
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<target>1.8</target>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</configuration>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</plugin>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<plugin>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<artifactid>maven-war-plugin</artifactid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<version>2.3</version>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<configuration>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<filteringdeploymentdescriptors>true</filteringdeploymentdescriptors>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</configuration>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</plugin>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</plugins>
&nbsp;&nbsp; &nbsp;</build>
&nbsp;&nbsp; &nbsp;<dependencies>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<groupid>javax.faces</groupid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<artifactid>javax.faces-api</artifactid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<version>2.2</version>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<scope>provided</scope>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<groupid>org.glassfish</groupid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<artifactid>javax.faces</artifactid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<version>2.2.20</version>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<scope>runtime</scope>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<groupid>com.liferay.faces</groupid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<artifactid>com.liferay.faces.bridge.ext</artifactid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<version>5.0.5</version>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<scope>runtime</scope>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<groupid>com.liferay.faces</groupid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<artifactid>com.liferay.faces.bridge.impl</artifactid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<version>4.1.4</version>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<scope>runtime</scope>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<groupid>log4j</groupid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<artifactid>log4j</artifactid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<version>1.2.14</version>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<groupid>org.primefaces</groupid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<artifactid>primefaces</artifactid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<version>7.0</version>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<!-- IMPORTED -->
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<groupid>com.liferay.portal</groupid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<artifactid>com.liferay.portal.kernel</artifactid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<version>5.4.0</version>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<scope>provided</scope>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<groupid>javax.portlet</groupid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<artifactid>portlet-api</artifactid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<version>3.0.0</version>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<scope>provided</scope>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<groupid>javax.servlet</groupid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<artifactid>javax.servlet-api</artifactid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<version>3.0.1</version>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<scope>provided</scope>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<groupid>org.osgi</groupid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<artifactid>org.osgi.util.tracker</artifactid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<version>1.5.2</version>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<scope>provided</scope>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<groupid>org.osgi</groupid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<artifactid>org.osgi.core</artifactid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<version>6.0.0</version>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<scope>provided</scope>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<!-- FONT-AWESOME -->
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<dependency>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<groupid>org.webjars</groupid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<artifactid>font-awesome</artifactid>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<version>5.12.0</version>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;</dependency>
&nbsp;&nbsp; &nbsp;</dependencies>
</project>
Please, can you help me to know if I'm missing something?
Thank you.
Best regards,

Alex
Alex Pasquini, modified 5 Years ago. Junior Member Posts: 38 Join Date: 3/3/20 Recent Posts
I've seen that removing the tags <h:head> and <h:body> from my view.xhtml files, I'm able to show multiple jsf portlet in the same page, anyway css and js are not enabled. In particular I'm using primefaces and the resources related to this UI Framework are not loaded.
If it's correct to remove the previous tags, how can I enable the use of css and js reources?
Thank you.
Best regards,

Alex
thumbnail
Neil Griffin, modified 5 Years ago. Liferay Legend Posts: 2655 Join Date: 7/27/05 Recent Posts
Hi Alex,
The <h:head/> and <h:body>...</h:body> component tags are required for JSF portlets to work correctly. It is incorrect (not correct) to remove them.The <h:head/> tag informs Liferay Faces Bridge that there are JSF resources (like PrimeFaces jquery.js) that need to be added to the <head>...</head> section of the portal page.The <h:body>...</h:body> tag informs Liferay Faces Bridge that it must render an outer-most <div> that contains the rendered portlet markup.Kind Regards,Neil
Alex Pasquini, modified 5 Years ago. Junior Member Posts: 38 Join Date: 3/3/20 Recent Posts
Hi Neil,Thank you for the answer. I've understood the state of art.
However, how can I add two jsf portlets in the same page? I'm experiencing the above error even if I try to add two skeleton portlets generated from JSF archetype in the same page.Is it a Liferay bug? If so, how can I handle it?
Thank you.
Alex Pasquini, modified 5 Years ago. Junior Member Posts: 38 Join Date: 3/3/20 Recent Posts
<p>Well, with the new com.liferay.faces.bridge.ext:6.0.0 seems two portlets can work together in the same page.</p>

<p>Thank you.</p>

<p>Best wishes,</p>

<p>&nbsp;</p>

<p>Alex</p>
thumbnail
Neil Griffin, modified 5 Years ago. Liferay Legend Posts: 2655 Join Date: 7/27/05 Recent Posts
Hi Alex,
Given what you've posted so far, I realize that what I'm about to write is already known by you, but I just wanted to point out some details for members of the community that might come across this thread.

In April 20, 2020 (yesterday) we released JSF portlet archetypes that are designed for use with Liferay Portal CE 7.3:
    https://www.liferayfaces.org

If you look at the "Dependencies for Liferay Portal 7.3 + JSF 2.2" part of that page, you'll see the following dependency:
	<dependency>
		<groupid>com.liferay.faces</groupid>
		<artifactid>com.liferay.faces.bridge.ext</artifactid>
		<version>6.0.0</version>
		<scope>runtime</scope>
	</dependency>

We've also updated the Liferay Faces Version Scheme so that com.liferay.faces.bridge.ext-6.0.0.jar now targets Liferay Portal CE / DXP 7.3+

I'm glad to learn that com.liferay.faces.bridge.ext-6.0.0.jar fixed the problem you encountered with multiple JSF portlets on the same page. You were ahead of many in our community using Liferay Faces with Liferay Portal CE 7.3 and we've all benefitted from your communications here.


As always, thanks for using Liferay Faces emoticon


Neil