Navegación por categorías

Se ha producido un error al procesar la plantilla.
Java method "com.sun.proxy.$Proxy68.getAssetCategory(long)" threw an exception when invoked on com.sun.proxy.$Proxy68 object "com.liferay.asset.categories.internal.service.AssetEntryAssetCategoryRelAssetCategoryLocalServiceWrapper@7ca3fb93"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: category = assetCategoryService.getAs...  [in template "217051#217099#573763" at line 49, column 22]
	- Reached through: #assign-container  [in template "217051#217099#573763" at line 49, column 13]
----
1<#assign assetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") 
2		 assetCategoryPropertyService =  serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") 
3		 SAXReaderUtil = staticUtil["com.liferay.portal.kernel.xml.SAXReaderUtil"] 
4		 HtmlUtil = staticUtil["com.liferay.portal.kernel.util.HtmlUtil"] 
5		 layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") 
6		 PortletURLFactoryUtil = staticUtil["com.liferay.portal.kernel.portlet.PortletURLFactoryUtil"] 
7		 PortletRequest = staticUtil["javax.portlet.PortletRequest"]     
8		 journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")   
9		 ParamUtil = staticUtil["com.liferay.portal.kernel.util.ParamUtil"]              
10         categoryId = ParamUtil.getLong(request,"categoryId", 0) 
11         title =  ParamUtil.getString(request,"title", "") 
12         maxLoop = 100          
13         imageId = ParamUtil.getString(request,"imageId","")          
14/> 
15 
16<#if (categoryId <= 0) > 
17	<#assign categoryId = ParamUtil.getLong(renderRequest,"categoryId", 0)/> 
18</#if> 
19 
20<#if (categoryId <= 0) > 
21    <#if entries?has_content> 
22		<#foreach aCategory in entries?first.getCategories()> 
23			<#assign aCategory = aCategory/> 
24			<#break> 
25		</#foreach> 
26		<#list 1..maxLoop as i> 
27			<#list 1..maxLoop as j> 
28				<#if aCategory.getParentCategory()?has_content> 
29					<#assign aCategory = aCategory.getParentCategory()/> 
30				<#else> 
31					<#assign categoryId = aCategory.getCategoryId()/> 
32			   </#if>   
33			   <#break> 
34			</#list> 
35			<#if (categoryId > 0) > 
36				<#break> 
37			</#if> 
38		</#list> 
39	 </#if> 
40</#if> 
41 
42 
43<nav aria-label="breadcrumb"> 
44    <ol class="breadcrumb"> 
45       <li class="breadcrumb-title"><span>${languageUtil.get(locale,"webasturias.breadcrumb-title")}</span></li> 
46       <#--<li class="breadcrumb-item"><a href="/">${languageUtil.get(locale,"webasturias.breadcrumb-asturias")}</a></li>-->         
47        <#if (categoryId > 0) > 
48 
49            <#assign category = assetCategoryService.getAssetCategory(categoryId) 
50                     categoryAncestors = category.getAncestors() 
51                     breadCrumbContent = ""/> 
52                      
53            <#if categoryAncestors?has_content> 
54                <#foreach categoryAncestor in categoryAncestors> 
55                	 
56                	<#assign hideCategory = false/> 
57                	 
58                	<#-- obtener el contenido de la categoría hija --> 
59                	<#assign contentId = (assetCategoryPropertyService.fetchCategoryProperty(categoryAncestor.getCategoryId(), "idContenido").getValue())!""/> 
60					<#if contentId ? has_content>			         
61		            	<#assign journalArticleSub = journalArticleService.getLatestArticle(groupId,contentId)/> 
62		        		 
63		        		<#if journalArticleSub?has_content> 
64			        		<#-- obtener el contenido de la categoría actual --> 
65			                <#assign document = SAXReaderUtil.read(journalArticleSub.getContentByLocale(locale)) 
66                    		 	pageDetailNode =  document.selectSingleNode("/root/dynamic-element[@name='paginaDetalle']/dynamic-content") 
67                    		 	/> 
68                    		 <#if document.selectSingleNode("/root/dynamic-element[@name='visibleMigas']/dynamic-content")?has_content> 
69                    		 	<#assign visibleMigasNode =  document.selectSingleNode("/root/dynamic-element[@name='visibleMigas']/dynamic-content")  
70                    		 			 visibleMigas =  visibleMigasNode.getText() 
71                    		 			 hideCategory = visibleMigas != "1"/> 
72                    		 </#if> 
73			        	</#if>		 	      		    	  
74			    	  
75				    	 <#if pageDetailNode?has_content && pageDetailNode.getText()?has_content> 
76			        		<#assign  pageDetail = pageDetailNode.getText()/> 
77			        		<#if (pageDetail?index_of("@")>0)> 
78		                		<#assign pageDetailPosition = (pageDetail?index_of("@")-1) 
79		                         	pageDetail = pageDetail[0..pageDetailPosition] 
80		                          	layoutDetail = layoutLocalService.getLayout(themeDisplay.getScopeGroupId(),false,pageDetail?number) 
81		                      	/> 
82		                	</#if> 
83			            <#else> 
84			            	<#assign detailPage = "general" 
85			            	 		 layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) /> 
86			            </#if> 
87			             
88			            <#assign categoryUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE)    /> 
89	                    ${categoryUrl.setParameter("categoryId",categoryAncestor.getCategoryId()+"")} 
90	                 
91	                	<#if !(hideCategory?has_content && hideCategory)> 
92	                		<#if categoryAncestor.isRootCategory()> 
93		                		<#assign breadCrumbContent = "<li class='breadcrumb-item'><a href='"+categoryUrl+"'>"+categoryAncestor.getTitle(locale)+" </a> </li>"+breadCrumbContent/> 
94		                	<#else> 
95		                    	<#assign breadCrumbContent = "<li class='breadcrumb-item'><a href='"+categoryUrl+"'>"+categoryAncestor.getTitle(locale)+" </a> </li>"+breadCrumbContent/> 
96		                    </#if>	                   		 
97	                   	</#if> 
98                	</#if> 
99                </#foreach> 
100                 
101                ${breadCrumbContent} 
102                 
103            </#if> 
104             
105            <#assign hideCategory = false/> 
106            <#assign contentId = (assetCategoryPropertyService.fetchCategoryProperty(category.getCategoryId(), "idContenido").getValue())!""/> 
107			<#if contentId ? has_content>	 
108            	<#assign journalArticleSub = journalArticleService.getLatestArticle(groupId,contentId)/> 
109        		 
110        		<#if journalArticleSub?has_content> 
111	        		<#-- obtener el contenido de la categoría actual --> 
112	                <#assign document = SAXReaderUtil.read(journalArticleSub.getContentByLocale(locale)) 
113            		 	pageDetailNode =  document.selectSingleNode("/root/dynamic-element[@name='paginaDetalle']/dynamic-content") 
114            		 	/> 
115            		 <#if document.selectSingleNode("/root/dynamic-element[@name='visibleMigas']/dynamic-content")?has_content> 
116            		 	<#assign visibleMigasNode =  document.selectSingleNode("/root/dynamic-element[@name='visibleMigas']/dynamic-content")  
117            		 			 visibleMigas =  visibleMigasNode.getText() 
118            		 			 hideCategory = visibleMigas != "1"/> 
119            		 </#if> 
120	        	</#if>  	  
121	    	  
122		    	<#if pageDetailNode?has_content && pageDetailNode.getText()?has_content> 
123	        		<#assign  pageDetail = pageDetailNode.getText()/> 
124	        		<#if (pageDetail?index_of("@")>0)> 
125                		<#assign pageDetailPosition = (pageDetail?index_of("@")-1) 
126                         	pageDetail = pageDetail[0..pageDetailPosition] 
127                          	layoutDetail = layoutLocalService.getLayout(themeDisplay.getScopeGroupId(),false,pageDetail?number) 
128                      	/> 
129                	</#if> 
130	            <#else> 
131	            	<#if category.isRootCategory()> 
132	            		<#assign detailPage = "inicio"/> 
133	            	<#else> 
134	            		<#assign detailPage = "general"/> 
135	            	</#if> 
136	            	 
137	            	<#assign layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) /> 
138	            </#if> 
139	             
140	            <#assign categoryUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE)    /> 
141                ${categoryUrl.setParameter("categoryId",category.getCategoryId()+"")} 
142             
143            	<#if !(hideCategory?has_content && hideCategory)> 
144            		<#if category.isRootCategory()> 
145                		<#if title?has_content> 
146                			<li class="breadcrumb-item"><a href="/inicio">${category.getTitle(locale)}</a></li>		                		 
147                		<#else> 
148                			<li class="breadcrumb-item active">${category.getTitle(locale)}</li> 
149                		</#if>  
150                	<#else> 
151                    	<#if title?has_content> 
152                			<li class="breadcrumb-item"><a href="${categoryUrl}<#if imageId ? has_content>?imageId=${imageId}&title=${HtmlUtil.escapeURL(category.getTitle(locale))}</#if>">${category.getTitle(locale)}</a></li>		                		 
153                		<#else> 
154                			<li class="breadcrumb-item active">${category.getTitle(locale)}</li> 
155                		</#if>  
156                    </#if>	                		               		 
157               	</#if> 
158        	</#if> 
159        </#if> 
160        <#if title ? has_content> 
161        	<li class="breadcrumb-item active">${title}</li>  
162        </#if> 
163    </ol> 
164</nav> 
165 
166<script type="text/javascript"> 
167	$( document ).ready(function() { 
168		 if(typeof ga !== "undefined") { 
169		 <#if title ? has_content> 
170		 	var pageName = '${title}'; 
171		 <#elseif category ? has_content> 
172		 	var pageName = '${category.getName()}'; 
173		 <#else> 
174		 	var pageName = location.pathname; 
175		 </#if> 
176			     ga( 'send', 'pageview', { 
177				    'page': pageName, 
178				    'title': pageName 
179				} ); 
180
181	}); 
182</script> 

Navegación por categorías