掲示板

sitemap is not generating for public pages in virtualhost

thumbnail
8年前 に Amit Doshi によって更新されました。

sitemap is not generating for public pages in virtualhost

Liferay Master 投稿: 550 参加年月日: 10/12/29 最新の投稿
Hi All,

We are working on google crawling stuffs, in which google required sitemap.xml file in order to crawl the content from the website.

Our liferay environment is working fine, but when I try to hit the url https://iqtst.xyz.com/sitemap.xml & also i tried with https://iqtst.xyz.com/sitemap.xml?groupId=12345&privateLayout=false . Both of them didn't work.

It was not showing anything in log files but gives error as

Internal Server Error
An error occurred while accessing the requested resource.
https://iqtst.xyz.com/sitemap.xml?groupId=6364098&privateLayout=false


Not sure what was going wrong in this . We are using liferay 6.1 GA2 EE edition.

But one more thing forgot to mention, it is with virtualhost and also when I try to hit and find for the private page like https://iqtst.xyz.com/sitemap.xml?groupId=12345&privateLayout=true, it works fine.

It does not work for public pages.

Any pointer will be highly appreciated.

Thanks in advance.

Regards,
Amit Doshi
thumbnail
8年前 に Amit Doshi によって更新されました。

RE: sitemap is not generating for public pages in virtualhost

Liferay Master 投稿: 550 参加年月日: 10/12/29 最新の投稿
Found below errors in the log file

2015-07-31 17:02:21,740 [] [ERROR] [html.portal.status_jsp] [tomcat-http--7] [344102] java.lang.NullPointerException
java.lang.NullPointerException
        at com.liferay.portal.util.PortalImpl.isLayoutSitemapable(PortalImpl.java:4963)
        at com.liferay.portal.util.PortalUtil.isLayoutSitemapable(PortalUtil.java:1504)
        at com.liferay.portlet.layoutsadmin.util.SitemapImpl.visitLayout(SitemapImpl.java:229)
        at com.liferay.portlet.layoutsadmin.util.SitemapImpl.visitLayouts(SitemapImpl.java:274)
        at com.liferay.portlet.layoutsadmin.util.SitemapImpl.visitLayout(SitemapImpl.java:266)
        at com.liferay.portlet.layoutsadmin.util.SitemapImpl.visitLayouts(SitemapImpl.java:274)
        at com.liferay.portlet.layoutsadmin.util.SitemapImpl.visitLayout(SitemapImpl.java:266)
        at com.liferay.portlet.layoutsadmin.util.SitemapImpl.visitLayouts(SitemapImpl.java:274)
        at com.liferay.portlet.layoutsadmin.util.SitemapImpl.getSitemap(SitemapImpl.java:77)
        at com.liferay.portlet.layoutsadmin.util.SitemapUtil.getSitemap(SitemapUtil.java:41)
        at com.liferay.portlet.layoutsadmin.action.SitemapAction.execute(SitemapAction.java:78)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
        at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:176)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
        at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:560)
        at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:537)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163)
        at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:123)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163)
        at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:294)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:73)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:690)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:477)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
        at com.liferay.portal.servlet.SitemapServlet.service(SitemapServlet.java:49)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163)
        at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:216)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:187)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
        at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:167)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
        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:167)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
        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:187)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
        at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:73)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)
2015-07-31 17:02:21,759 [] [ERROR] [portal.struts.PortletRequestProcessor] [tomcat-http--7] [344121] Forward does not exist
thumbnail
8年前 に Alexey Kakunin によって更新されました。

RE: sitemap is not generating for public pages in virtualhost

Liferay Master 投稿: 621 参加年月日: 08/07/07 最新の投稿
Hi Amit!

It looks like your public pages has some "corrupted" page. Sources of isLayoutSitemapable method in 6.1 CE GA2 are followed (got it here: https://github.com/liferay/liferay-portal/blob/6.1.1-ga2/portal-impl/src/com/liferay/portal/util/PortalImpl.java#L4928-L4936)


	public boolean isLayoutSitemapable(Layout layout) {
		if (layout.isPrivateLayout()) {
			return false;
		}

		LayoutSettings layoutSettings = LayoutSettings.getInstance(layout);

		return layoutSettings.isSitemapable();
	}


I do not have sources of 6.1 EE GA2 under my hands to say exactly - which like produced NPE - but my vote is for return layoutSettings.isSitemapable(); (mean - Liferay was not able by some reason to get layout settings for specific page)

What you can do:
1. Since you are EE customer submit request into LESA - Liferay staff should help you
2. As workaround - write simple ext-plugin to overwrite PortalImpl and replace this method to check both - layot and layoutsettings for null and return false in case they null - it will avoid this "wrong" layout and generate sitemap for other pages
3. Try to play with pages in public site - for example remove it one to one (of possible) to find that "wrong" page.