Programa de compostaxe local (Revitaliza)

Produciuse un erro ao procesar o modelo.
Java method "com.sun.proxy.$Proxy90.getLayouts(long, boolean, long)" threw an exception when invoked on com.sun.proxy.$Proxy90 object "com.liferay.layout.internal.service.LayoutLocalServiceWrapper@24f057e5"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign paginas = layoutLocalService...  [in template "20097#20123#6338405" at line 35, column 3]
----
1</div> 
2 
3<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")/> 
4  <#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")> 
5 
6  <#assign group = groupLocalService.getGroup(groupId)/> 
7 
8<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() /> 
9 
10 
11<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
12 
13  <#assign groupFriendlyUrl = themeDisplay.getPathFriendlyURLPublic() + group.getFriendlyURL() /> 
14 
15  <#assign layoutId = themeDisplay.getPlid() /> 
16  <#assign layout = layoutLocalService.getLayout(layoutId)/> 
17 
18  <#-- Buscar root layout del monografico --> 
19  <#assign ancestorsLayout = layout.getAncestors() /> 
20   
21          <#list ancestorsLayout as pagina> 
22 
23  </#list> 
24 
25     
26<#assign rootLayout = layout /> 
27 
28  <#if (ancestorsLayout?size - NivelMenu.getData()?number >= 0)> 
29    <#assign rootLayout = ancestorsLayout[ancestorsLayout?size - NivelMenu.getData()?number] /> 
30  </#if> 
31 
32 
33 
34  <#-- Buscar hijos del root layout --> 
35  <#assign paginas = layoutLocalService.getLayouts(groupId, layout.isPrivateLayout(), rootLayout.getLayoutId())/> 
36 
37<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() /> 
38<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
39<#setting url_escaping_charset='utf-8'> 
40 
41 
42<#if Cabecera.getData()?has_content> 
43 
44<div class="cabecera"> 
45    <img src="${Cabecera.getData()}" loading="lazy" alt="" /> 
46 
47    <div class="titulo"> 
48     
49        <div class="rectangulo"> 
50            
51            <h2>${Titulo.getData()}</h2> 
52             
53            <#if Texto25t4.getData()?has_content> 
54 
55            <h3>${Texto25t4.getData()}</h3> 
56            </#if> 
57         
58        </div> 
59 
60    </div> 
61 
62</div></#if> 
63 
64<@liferay.breadcrumbs /> 
65 
66<#assign PortalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"] /> 
67        <script src="//f1-eu.readspeaker.com/script/7131/ReadSpeaker.js?pids=embhl" type="text/javascript"></script> 
68        <style> 
69        <!-- 
70        span.rsbtn_powered {display:none;} 
71        a.rsbtn_settings {display: none;} 
72        a.rsbtn_dl{display: none;} 
73        --> 
74        </style> 
75       <div class="container mb-5"> 
76        <div id="RS_wrapper" style="height: 26px;"> 
77          <div> 
78            <#if locale.equals('gl_ES')> 
79 
80              <#assign currentUrl = themeDisplay.getPortalURL()  +"es" + themeDisplay.getURLCurrent() />         
81              <div id="readspeaker_button1" class="rs_skip rsbtn rs_preserve"> 
82                <a class="rsbtn_play" accesskey="L" title="Escoita esta páxina con ReadSpeaker" href="//app.readspeaker.com/cgi-bin/rsent?customerid=7131&amp;lang=gl_es&amp;readid=readspeaker_text&amp;url=${currentUrl?url}"> 
83                <span class="rsbtn_left rsimg rspart"> 
84                  <span class="rsbtn_text"> 
85                    <span><@liferay.language key="Escuchar" /></span> 
86                  </span> 
87                </span> 
88                <span class="rsbtn_right rsimg rsplay rspart"></span> 
89                </a> 
90              </div> 
91            </#if> 
92            <#if !locale.equals('gl_ES')> 
93       
94 
95           <#assign currentUrl = themeDisplay.getPortalURL()  + themeDisplay.getURLCurrent() /> 
96            <div id="readspeaker_button1" class="rs_skip rsbtn rs_preserve"> 
97              <a class="rsbtn_play" accesskey="L" title="Escucha esta página con ReadSpeaker" href="//app.readspeaker.com/cgi-bin/rsent?customerid=7131&amp;lang=es_es&amp;readid=readspeaker_text&amp;url=${currentUrl?url}"> 
98                <span class="rsbtn_left rsimg rspart"> 
99                  <span class="rsbtn_text"> 
100                    <span>Escuchar</span> 
101           
102                  </span> 
103                </span> 
104                <span class="rsbtn_right rsimg rsplay rspart"></span> 
105              </a> 
106            </div> 
107            </#if> 
108          </div> 
109        </div>    </div>   
110<div class="cuerpo max1024 row" id="readspeaker_text"> 
111 
112 
113      <div class="col-md-3"> 
114 
115        <div class="rectangulo"> 
116        <ul class="paginas"> 
117   
118           
119          <#list paginas as pagina> 
120            <#if !pagina.isHidden()> 
121              <#-- Comprobar si tiene páginas hijas no ocultas --> 
122              <#assign subpaginas = layoutLocalService.getLayouts(groupId, layout.isPrivateLayout(), pagina.getLayoutId())/> 
123              <#assign hasChildren = false/> 
124              <#list subpaginas as subpagina> 
125                <#if !subpagina.isHidden()> 
126                  <#assign hasChildren = true/> 
127                  <#break> 
128                </#if> 
129              </#list> 
130               
131              <#assign pagActual = false/> 
132              <#if pagina.getLayoutId() == layout.getLayoutId()> 
133                 
134                <#if hasChildren> 
135                  <#assign cssClass = 'class="hasChildren pagina-actual"'/> 
136 
137                <#else> 
138                  <#assign cssClass = 'class="pagina-actual"'/> 
139                </#if> 
140 
141                <#assign pagActual = true/> 
142              <#elseif layout.getParentLayoutId() == pagina.getLayoutId() > 
143                 
144                <#if hasChildren> 
145                  <#assign cssClass = 'class="hasChildren padre-pagina-actual"'/> 
146 
147                <#else> 
148                  <#assign cssClass = 'class="padre-pagina-actual"'/> 
149                </#if> 
150 
151              <#else> 
152 
153              <#if hasChildren> 
154                  <#assign cssClass = 'class="hasChildren"'/> 
155 
156                <#else> 
157                    <#assign cssClass = ''/> 
158                </#if> 
159              </#if> 
160               
161              <#if hasChildren> 
162                <#assign url = '#'/> 
163              <#else> 
164                <#assign url = groupFriendlyUrl + pagina.getFriendlyURL()/> 
165              </#if> 
166               
167              <li ${cssClass}> 
168 
169 
170                           <#assign image = '/image/layout_icon?img_id=' + pagina.getIconImageId()/> 
171 
172                            <div class="img-content"> 
173                               <img src="${image}" alt=""/>  
174                  <div class="bot"> 
175 
176                <#if pagActual && !hasChildren> 
177                  <span> 
178                    ${pagina.getName(locale)} 
179                  </span> 
180                <#else> 
181                  <#if hasChildren && pagActual> 
182                   
183                  <a href="${url}"> 
184                    ${pagina.getName(locale)} 
185                                       
186                  </a> 
187                   <#if hasChildren> 
188                                            <i class="fa fa-angle-down" aria-hidden="true"></i> 
189                                        </#if> 
190                                    <#elseif hasChildren> 
191                  <#assign url = groupFriendlyUrl + pagina.getFriendlyURL()/> 
192 
193 
194                  <a href="${url}">              
195                    ${pagina.getName(locale)} 
196                                    
197                  </a> 
198                      <#if hasChildren> 
199                                            <i class="fa fa-angle-down" aria-hidden="true"></i> 
200                                        </#if> 
201                  <#else> 
202                    <#assign url = groupFriendlyUrl + pagina.getFriendlyURL()/> 
203 
204 
205                  <a href="${url}"> 
206                    ${pagina.getName(locale)} 
207                                       
208                  </a> 
209                    <#if hasChildren> 
210                                            <i class="fa fa-angle-down" aria-hidden="true"></i> 
211                                        </#if> 
212 
213                  </#if> 
214 
215                 
216                </#if> 
217                </div> 
218</div> 
219                <#-- Subpaginas --> 
220                <#if hasChildren> 
221                  <ul class="subpaginas"> 
222                    <#list subpaginas as subpagina> 
223                      <#if !subpagina.isHidden()> 
224                        <#if subpagina.getLayoutId() == layout.getLayoutId()> 
225                          <li class="pagina-actual"> 
226                            <span>${subpagina.getName(locale)}</span> 
227                          </li> 
228                        <#else> 
229                          <#assign url = groupFriendlyUrl + subpagina.getFriendlyURL()/> 
230                          <li> 
231                            <a href="${url}"> 
232                              ${subpagina.getName(locale)} 
233                            </a> 
234                          </li> 
235                        </#if> 
236                      </#if> 
237                    </#list> 
238                  </ul> 
239                </#if> 
240              </li> 
241            </#if> 
242          </#list> 
243        </ul> 
244              </div> 
245 
246      </div> 
247 
248 
249 
250<div class="col-md-9"> 
251 
252     
253<#if MenuAnclas.getSiblings()[0].Ancla.getData()?has_content> 
254<div class="anclas"> 
255<ul> 
256    <#list MenuAnclas.getSiblings() as cur_Ancla> 
257        <li><a href="${cur_Ancla.Ancla.getData()}"> 
258 
259            <span class="${cur_Ancla.Icono.getData()}"> &nbsp; </span> 
260            <span>${cur_Ancla.getData()}</span> 
261 
262 
263        </a></li> 
264    </#list> 
265</ul> 
266</div> 
267</#if> 
268 
269<#if HTML1dwq.getData()?has_content> 
270 
271<div class="entradilla">${HTML1dwq.getData()}</div> 
272<hr> 
273</#if> 
274 
275${Cuerpo.getData()} 
276 
277 
278<#if Enlace.getSiblings()[0].Url_Enlace.getData()?has_content> 
279<div class="enlaces"> 
280<h2><@liferay.language key="enlaces" /></h2> 
281<ul> 
282    <#list Enlace.getSiblings() as cur_Enlace> 
283        <li><a href="${cur_Enlace.Url_Enlace.getData()}" target="${cur_Enlace.Target_Enlace.getData()}"><span>${cur_Enlace.getData()}</span> 
284 
285<div class="icono"> 
286<svg class="linkIcon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32pt" height="32pt" viewBox="0 0 32 32" version="1.1"> 
287<g> 
288<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 27.679688 9.636719 C 27.679688 9.902344 27.574219 10.15625 27.386719 10.34375 L 18.75 18.980469 C 18.5 19.242188 18.128906 19.347656 17.777344 19.257812 C 17.429688 19.164062 17.15625 18.890625 17.0625 18.542969 C 16.972656 18.191406 17.074219 17.820312 17.335938 17.570312 L 24.265625 10.636719 L 6.320312 10.636719 L 6.320312 31 C 6.320312 31.550781 5.871094 32 5.320312 32 C 4.765625 32 4.320312 31.550781 4.320312 31 L 4.320312 9.636719 C 4.320312 9.085938 4.765625 8.636719 5.320312 8.636719 L 24.265625 8.636719 L 17.335938 1.707031 C 17.082031 1.453125 16.980469 1.085938 17.074219 0.738281 C 17.164062 0.390625 17.433594 0.121094 17.78125 0.0273438 C 18.128906 -0.0625 18.5 0.0390625 18.75 0.292969 L 27.386719 8.929688 C 27.574219 9.117188 27.679688 9.371094 27.679688 9.636719 Z M 27.679688 9.636719 "/> 
289</g> 
290</svg> 
291</div> 
292 
293        </a></li> 
294    </#list> 
295</ul> 
296</div> 
297</#if> 
298 
299<#if Documento.getSiblings()[0].Url_Documento.getData()?has_content> 
300<div class="documentos"> 
301<h2>Documentos</h2> 
302<ul> 
303    <#list Documento.getSiblings() as cur_Documento> 
304   <li><a href="${cur_Documento.Url_Documento.getData()}" target="${cur_Documento.Target_Documento.getData()}"> 
305 
306 <span>  ${cur_Documento.getData()} </span> 
307 
308<div class="icono"> 
309<svg class="documentIcon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32pt" height="32pt" viewBox="0 0 32 32" version="1.1"> 
310<g> 
311<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 17.28125 0 L 4.480469 0 C 4.125 0 3.839844 0.285156 3.839844 0.640625 L 3.839844 31.359375 C 3.839844 31.714844 4.125 32 4.480469 32 L 27.519531 32 C 27.875 32 28.160156 31.714844 28.160156 31.359375 L 28.160156 10.878906 C 28.160156 7.929688 20.230469 0 17.28125 0 Z M 26.878906 30.71875 L 5.121094 30.71875 L 5.121094 1.28125 L 17.28125 1.28125 C 19.523438 1.28125 26.878906 8.636719 26.878906 10.878906 Z M 26.878906 30.71875 "/> 
312<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 27.136719 8.960938 L 19.199219 8.960938 L 19.199219 1.023438 C 19.199219 0.667969 18.914062 0.382812 18.558594 0.382812 C 18.207031 0.382812 17.921875 0.671875 17.921875 1.023438 L 17.921875 9.601562 C 17.921875 9.953125 18.207031 10.238281 18.558594 10.238281 L 27.136719 10.238281 C 27.492188 10.238281 27.777344 9.953125 27.777344 9.601562 C 27.777344 9.246094 27.488281 8.960938 27.136719 8.960938 Z M 27.136719 8.960938 "/> 
313</g> 
314</svg> 
315</div> 
316 
317</a></li> 
318    </#list> 
319 
320</ul> 
321</div> 
322</#if> 
323 
324 
325 
326</div> 
327<#if Frecuencia.getData()?has_content> 
328 
329<div class="row tiempos"> 
330<#assign modifieddate = .vars['reserved-article-modified-date'].data> 
331 
332<#-- Save the original page locale for later --> 
333<#assign originalLocale = .locale> 
334 
335<#-- Set the page locale to the portals default locale --> 
336<#setting locale = localeUtil.getDefault()> 
337 
338<#-- Parse the date to a date object --> 
339<#assign modifieddate = modifieddate?datetime("EEE, d MMM yyyy HH:mm:ss Z")> 
340 
341<#-- Set the page locale back to the original page locale --> 
342<#assign locale = originalLocale> 
343 
344 
345    <div class="col-12 text-right frecuencia"><i class="fa-solid fa-clock"></i>${Frecuencia.getData()}</div> 
346 
347</div> 
348 
349</#if> 
350 
351 
352 
353</div> 
354 
355 
356<script>//$(document).ready(function(a){$(".hasChildren .img-content i").click(function(){$(this).closest(".hasChildren").children("ul.subpaginas").toggleClass("open")})}); 
357 
358const divs = document.querySelectorAll('.hasChildren .img-content i'); 
359 
360divs.forEach(el => el.addEventListener('click', event => { 
361   
362var child = event.target.closest(".hasChildren").querySelector('ul.subpaginas'); 
363 
364child.classList.toggle("open"); 
365 
366 
367})); 
368 
369 
370 
371</script>