Errorea gertatu da txantiloia prozesatzerakoan.
Java method "com.sun.proxy.$Proxy52.getAssetVocabulary(long)" threw an exception when invoked on com.sun.proxy.$Proxy52 object "com.liferay.portlet.asset.service.impl.AssetVocabularyLocalServiceImpl@c3e6710"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign assetVocabulary = assetVocabu...  [in template "20907#20945#15488422" at line 71, column 1]
----
1<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") /> 
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
3<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") /> 
4<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
5<#assign structureLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMStructureLocalService") /> 
6<#assign classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService")/> 
7<#assign fileLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")> 
8 
9<#assign className = classNameLocalService.getClassName("com.liferay.journal.model.JournalArticle") /> 
10<#assign classNameId = className.getClassNameId() /> 
11 
12<#assign currentArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) /> 
13<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() /> 
14<#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) /> 
15<#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() /> 
16<#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) /> 
17 
18 
19<#assign structureArticulo=13449216 /> 
20<#assign structureBotonera=13449217 /> 
21<#assign structureCarrousel=13449218 /> 
22<#assign structurePonente=13449220 /> 
23<#assign structureFicha=13449221 /> 
24<#assign structureDocumento=13449222 /> 
25<#assign structureFAQ=13449223 /> 
26<#assign structureVideo=13449219 /> 
27<#assign structureArchivo=13584317 /> 
28<#assign structureActualidad=13584334 /> 
29<#assign structureMenu=13640085 /> 
30<#assign structureTipos=13720053 /> 
31<#assign structureParticipante=13743729 /> 
32<#assign vocabularyBiblioteca=15471815 /> 
33<#assign videos = [] /> 
34<#assign archivos = [] /> 
35 
36 
37 
38<#assign ningun_resultado = 'Ez da emaitzarik izan bilaketarako.<br>Saiatu berriro beste bilaketa-parametro batzuekin.' /> 
39<#assign ningun_resultado_search = 'Ez da emaitzarik izan <span id="searchKey" class="searchKey"></span> bilaketarako.<br>Saiatu berriro beste bilaketa-parametro batzuekin.' /> 
40<#assign ningun_resultado_title = "Emaitzarik ez" /> 
41<#assign date_format = "yyyy/MM/dd" /> 
42<#assign filtrar = "Iragazi gaiaren arabera" /> 
43<#assign mostrar_todo = "Erakutsi dena" /> 
44<#assign archivos_relacionados = "Lotutako dokumentuak" /> 
45<#assign videos_relacionados = "Lotutako bideoak" /> 
46<#assign ver_documento = "Acceder al documento" /> 
47<#assign reproducir_video = "Bideoa erreproduzitu" /> 
48<#if locale.getLanguage() == "es" > 
49    <#assign ningun_resultado = 'No ha habido ningún resultado para su búsqueda.<br />Vuelva a intentarlo con otros parámetros de búsqueda.' /> 
50    <#assign ningun_resultado_search = 'No ha habido ningún resultado para la búsqueda de <span id="searchKey" class="searchKey"></span>.<br> Vuelva a intentarlo con otros parámetros de búsqueda.' /> 
51    <#assign ningun_resultado_title = "Ningún resultado" /> 
52    <#assign date_format = "dd/MM/yyyy" /> 
53    <#assign filtrar = "Filtrar por tema" /> 
54    <#assign mostrar_todo = "Mostrar todo" /> 
55    <#assign archivos_relacionados = "Archivos relacionados" /> 
56    <#assign videos_relacionados = "Vídeos relacionados" /> 
57    <#assign ver_documento = "Dokumentua irakurri" /> 
58    <#assign reproducir_video = "Reproducir video" /> 
59<#elseif locale.getLanguage() == "en" > 
60    <#assign ningun_resultado = 'There is no result for your search. <br /> Please try again with other search parameters.' /> 
61    <#assign ningun_resultado_search = 'There were no results for the search for <span id="searchKey" class="searchKey"> </span>. <br> Please try again with other search parameters.' /> 
62    <#assign mostrar_todo = "View all" /> 
63    <#assign ningun_resultado_title = "No results" /> 
64    <#assign date_format = "yyyy/MM/dd" /> 
65    <#assign filtrar = "Filter by topic" /> 
66    <#assign archivos_relacionados = "Related documents" /> 
67    <#assign videos_relacionados = "Related videos" /> 
68    <#assign ver_documento = "View document" /> 
69    <#assign reproducir_video = "Play video" /> 
70</#if> 
71<#assign assetVocabulary = assetVocabularyLocalService.getAssetVocabulary(vocabularyBiblioteca) /> 
72<#assign assetCategories = assetVocabulary.getCategories() /> 
73 
74<section class="tipoCont-seccion filtro-tema"> 
75    <div class="container"> 
76        <div class="row-fluid"> 
77            <div class="span12"> 
78                <h1 class="post-title">${.vars['reserved-article-title'].data}</h1> 
79                <#if Intro_archivo?? & Intro_archivo.getData()!=""> 
80                <div class="sec-content"> 
81                    ${Intro_archivo.getData()} 
82                </div> 
83                </#if> 
84                <div class="sec-content"> 
85                    <h2 class="sec-title">${filtrar}</h2> 
86                </div> 
87                <div class="sec-tag-content"> 
88                    <ul id="category-filter" class="tag-list"> 
89                        <li class="tag-element"> 
90                            <a href="javascript:;" data-category="-1">${mostrar_todo}</a> 
91                        </li> 
92                        <#list assetCategories as assetCategory> 
93                            <li class="tag-element"> 
94                                <a href="javascript:;" data-category="${assetCategory.getCategoryId()}">${assetCategory.getTitle(locale)}</a> 
95                            </li> 
96                        </#list> 
97                    </ul> 
98                </div> 
99                <#list currentArticleRelatedLinks as related_entry> 
100                    <#assign relatedAssetEntryId = related_entry.getEntryId2() /> 
101                    <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
102                    <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
103                    <#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) /> 
104 
105                    <#assign structureId = 0 /> 
106                    <#attempt> 
107                        <#assign structure = structureLocalService.getStructure(relatedArticle.getGroupId(), classNameId, relatedArticle.getStructureId())  /> 
108                        <#assign structureId = structure.getStructureId()  /> 
109                        <#recover> 
110                    </#attempt> 
111                    <#if structureId==structureArchivo> 
112                        <#assign archivos=archivos+[relatedAssetEntry]> 
113                    <#elseif structureId==structureVideo> 
114                        <#assign videos=videos+[relatedAssetEntry]> 
115                    </#if> 
116                </#list> 
117                <#if (archivos?size>0)> 
118                    <h2 id="title-archivos">${archivos_relacionados}</h2> 
119                    <ul id="list-archivos" class="listado-grid column-4"> 
120                        <#list archivos as archivo> 
121                            <#assign relatedAssetEntryPrimKey = archivo.getClassPK() /> 
122                            <#assign article = journalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) /> 
123                            <#assign relatedAssetEntryCategories = archivo.getCategories() /> 
124                            <#assign categoryIds = "" /> 
125                            <#list relatedAssetEntryCategories as relatedAssetEntryCategory> 
126                                <#if (relatedAssetEntryCategory.getVocabularyId() == vocabularyBiblioteca)> 
127                                    <#assign categoryIds = categoryIds + relatedAssetEntryCategory.getCategoryId() + "," /> 
128                                </#if> 
129                            </#list> 
130 
131                            <#assign title = article.getTitle(locale) /> 
132                            <#assign docXml = saxReaderUtil.read(article.getContentByLocale(locale.toString())) /> 
133                            <#assign url = docXml.valueOf("//dynamic-element[@name='link_externo']/dynamic-content/text()") /> 
134                            <#assign fileEntryObject = docXml.valueOf("//dynamic-element[@name='Documento']/dynamic-content/text()")> 
135                        	<#assign imagen = docXml.valueOf("//dynamic-element[@name='image']/dynamic-content/text()") />	 
136                            <#if imagen?? && imagen != ""> 
137                                <#assign imagenJSON  = imagen?eval /> 
138                                <#assign imagenURL  = "/documents/"+imagenJSON.groupId+"/"+imagenJSON.uuid /> 
139                            </#if> 
140                            <#assign extension = "txt" /> 
141                            <#if fileEntryObject?? && fileEntryObject != ""> 
142                                <#assign fileEntryJSON  = fileEntryObject?eval /> 
143                                <#assign fileEntry = fileLocalService.getDLFileEntryByUuidAndGroupId(fileEntryJSON.uuid, getterUtil.getLong(fileEntryJSON.groupId))> 
144                                <#assign extension = fileEntry.getMimeType() /> 
145                                <#assign url  = "/documents/"+fileEntryJSON.groupId+"/"+fileEntryJSON.uuid /> 
146                            </#if> 
147                        	<#if (extension == 'application/pdf')> 
148                                <#assign extension='pdf' /> 
149                            <#elseif (extension == 'doc' || extension == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document')> 
150                                <#assign extension='doc' /> 
151                            <#elseif (extension == 'msword')> 
152                                <#assign extension='doc' /> 
153                            <#elseif (extension == 'vnd.openxmlformats-officedocument.wordprocessingml.document')> 
154                                <#assign extension='doc' /> 
155                            <#elseif (extension == 'vnd.oasis.opendocument.text')> 
156                                <#assign extension='odt' /> 
157                            <#elseif (extension == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')> 
158                                <#assign extension='xls' /> 
159                            <#elseif (extension == 'zip' || extension == 'x-zip-compressed')> 
160                                <#assign extension='zip' /> 
161                            <#elseif (extension == 'ppt' || extension == 'vnd.ms-powerpoint')> 
162                                <#assign extension='ppt' /> 
163                            <#elseif (extension == 'vnd.openxmlformats-officedocument.presentationml.presentation')> 
164                                <#assign extension='pptx' /> 
165                            <#elseif (extension == 'text/plain')> 
166                                <#assign extension='txt' /> 
167                            <#else> 
168                                <#assign extension='' /> 
169                            </#if> 
170 
171                            <li data-categoryid="${categoryIds}" class="liElement liTipo-horizontal file-list" data-mh="listadoArchivos" style="height: 134px;"> 
172                                <div class="bgImg"><span>${extension}</span></div> 
173                                <div class="contenido"> 
174                                    <p class="titulo">${title}</p> 
175                                    <a target="_blank" href="${url}" class="enlace" aria-label="${ver_documento}"></a> 
176                                </div> 
177                            </li>  
178                        </#list> 
179                    </ul> 
180                </#if> 
181 
182                <#if (videos?size>0)> 
183                    <h2 id="title-videos">${videos_relacionados}</h2> 
184                    <ul id="list-videos" class="listado-grid column-4 "> 
185                        <#list videos as video> 
186                            <#assign relatedAssetEntryPrimKey = video.getClassPK() /> 
187                            <#assign article = journalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) /> 
188                            <#assign relatedAssetEntryCategories = video.getCategories() /> 
189                            <#assign categoryIds = "" /> 
190                            <#list relatedAssetEntryCategories as relatedAssetEntryCategory> 
191                                <#if (relatedAssetEntryCategory.getVocabularyId() == vocabularyBiblioteca)> 
192                                    <#assign categoryIds = categoryIds + relatedAssetEntryCategory.getCategoryId() + "," /> 
193                                </#if> 
194                            </#list> 
195 
196                            <#assign title = article.getTitle(locale) /> 
197                            <#assign docXml = saxReaderUtil.read(article.getContentByLocale(locale.toString())) /> 
198                            <#assign provider = docXml.valueOf("//dynamic-element[@name='provider']/dynamic-content/text()") /> 
199                            <#assign videoid = docXml.valueOf("//dynamic-element[@name='videoid']/dynamic-content/text()") /> 
200 
201                            <li data-categoryid="${categoryIds}" class="liElement liTipo-noticia"> 
202                                <#if (provider?contains("youtube")) > 
203                                    <#assign imagePath="https://img.youtube.com/vi/"+videoid+"/0.jpg" /> 
204 
205                                    <div class="bgMarco"> 
206                                        <div class="bgMarcoImagen" style="background-image: url(${imagePath});"></div> 
207                                        <i class="icon-play" aria-hidden="true"></i> 
208                                    </div> 
209                                    <div class="contenido"> 
210                                        <p class="titulo">${title}</p> 
211                                        <a class="video-popup video-box resul-link enlace" href="https://www.youtube.com/watch?v=${videoid}" aria-label="${reproducir_video}"></a> 
212                                    </div> 
213 
214                                <#elseif (provider?contains("vimeo")) > 
215                                    <a class="video-popup video-box" href="https://vimeo.com/${videoid}" title="${title}"> 
216                                        <div class="video-box-thumb"> 
217                                            <img alt="${title}" src="" id="vimeo-thumbnail-videoid"> 
218                                            <#assign vimeoURL="https://vimeo.com/api/v2/video/"+videoid+".json?callback=showThumb" /> 
219                                            <script language="javascript"> 
220                                                function showThumb(data) 
221
222                                                    var id_img = "vimeo-thumbnail-videoid"; 
223                                                    document.getElementById(id_img).src=data[0].thumbnail_medium; 
224
225                                            </script> 
226                                            <script language="javascript" src="$vimeoURL"></script> 
227 
228                                        </div> 
229                                        <div class="entry-meta">${title}</div> 
230                                    </a> 
231                                    <#elseif (provider?contains("multimedia") || provider?contains("gipuzkoa") )> 
232                                    <#assign videoPath ="" /> 
233                                    <#assign $imagePath ="" /> 
234 
235                                    <#if (provider?contains("multimedia"))> 
236                                        <#assign videoPath = "https://multimedia.gipuzkoa.eus/media/video/" + videoid + ".720.mp4" /> 
237                                        <#assign videoidJPG = videoid + ".jpg" /> 
238                                        <#assign imagePath = "https://multimedia.gipuzkoa.eus/media/video/" + videoidJPG /> 
239                                    <#else> 
240                                        <#assign videoPath = "https://multimedia.gipuzkoa.eus/def/"+videoid+".mp4" /> 
241                                        <#assign imagePath = "https://multimedia.gipuzkoa.eus/def/"+videoid+"_preview.jpeg" /> 
242                                    </#if> 
243                                    <div class="bgMarco"> 
244                                        <div class="bgMarcoImagen" style="background-image: url(${imagePath});"></div> 
245                                        <i class="icon-play" aria-hidden="true"></i> 
246                                    </div> 
247                                    <div class="contenido"> 
248                                        <p class="titulo">${title}</p> 
249                                        <a class="video-popup video-box resul-link enlace" href="${videoPath}" aria-label="reproducir_video"></a> 
250                                    </div> 
251                                </#if> 
252                            </li> 
253                        </#list> 
254                    </ul> 
255                </#if> 
256                <div id="no-result" class="hide sec-content resul-empty no-result"> 
257                    <div class="box-content"> 
258                        <div class="box-icon">&nbsp;</div> 
259                        <div class="box-text"> 
260                            <h2 class="sec-title">${ningun_resultado_title}</h2> 
261                            <p class="sec-descrip">${ningun_resultado_search}</p> 
262                        </div> 
263                    </div> 
264                </div> 
265            </div> 
266        </div> 
267    </div> 
268</section> 
269<script> 
270    function filterByCategory(id, e) { 
271        var cont_archivos=0, cont_videos=0; 
272        if(id==-1){ 
273            var liElements=document.querySelectorAll(".liElement"); 
274            for (var i = 0; i < liElements.length; i++) { 
275	            var li = liElements[i]; 
276                li.classList.remove("hide"); 
277                cont_archivos=cont_archivos+1; 
278                cont_videos=cont_videos+1; 
279
280
281        else{ 
282            var liElements=document.querySelectorAll(".liElement"); 
283            for (var i = 0; i < liElements.length; i++) { 
284	            var li = liElements[i]; 
285                li.classList.add("hide"); 
286
287
288        var archivosliElements=document.getElementById("list-archivos").querySelectorAll(".liElement"); 
289        for (var i = 0; i < archivosliElements.length; i++) { 
290            var li = archivosliElements[i]; 
291            if(li.dataset.categoryid.indexOf(id)>-1){ 
292                li.classList.remove("hide"); 
293                cont_archivos=cont_archivos+1; 
294
295
296        <#if (videos?size>0)> 
297        var videosliElements=document.getElementById("list-videos").querySelectorAll(".liElement"); 
298        for (var i = 0; i < videosliElements.length; i++) { 
299            var li = videosliElements[i]; 
300            if(li.dataset.categoryid.indexOf(id)>-1){ 
301                li.classList.remove("hide"); 
302                cont_videos=cont_videos+1; 
303
304
305        if(cont_videos==0) { 
306            document.getElementById("title-videos").classList.add("hide"); 
307
308        else{ 
309            document.getElementById("title-videos").classList.remove("hide"); 
310
311        </#if> 
312        if(cont_archivos==0) { 
313            document.getElementById("title-archivos").classList.add("hide"); 
314
315        else{ 
316            document.getElementById("title-archivos").classList.remove("hide"); 
317
318        if(cont_archivos+cont_videos==0) { 
319            document.getElementById("no-result").classList.remove("hide"); 
320            document.getElementById("searchKey").innerHTML=e.target.text; 
321
322        else{ 
323            document.getElementById("no-result").classList.add("hide"); 
324            document.getElementById("title-archivos").classList.remove("hide"); 
325
326         
327        $.fn.matchHeight._update() 
328 
329
330 
331    var categories=document.getElementById("category-filter").getElementsByTagName("a"); 
332    for (var i = 0; i < categories.length; i++) { 
333        var a = categories[i]; 
334        a.addEventListener('click', function(e){filterByCategory(e.target.dataset.category, e);}); 
335
336</script>