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

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign assetsAmbito = assetVocabular...  [in template "85213932#85213972#85224821" at line 2, column 1]
----
1<#assign assetVocabularyLocalServiceUtil = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 
2<#assign assetsAmbito = assetVocabularyLocalServiceUtil.getVocabulary(1372288) /> 
3<#assign assetsCate = assetVocabularyLocalServiceUtil.getVocabulary(1371009 ) /> 
4 
5<#assign ningun_resultado = 'Ez da emaitzarik izan bilaketarako.<br>Saiatu berriro beste bilaketa-parametro batzuekin.' /> 
6<#assign ningun_resultado_search = 'Ez da emaitzarik izan <strong><span id="searchKey" class="searchKey"></span></strong> bilaketarako.<br>Saiatu berriro beste bilaketa-parametro batzuekin.' /> 
7<#assign ningun_resultado_title = "Emaitzarik ez" /> 
8<#assign paginacion = '<span id="delta_start">1</span> - <span id="delta_end">9</span> erakusten <span id="total">${entries?size}</span> emaitzetatik.' /> 
9<#assign next = "Hurrengoa" /> 
10<#assign previous = "Aurrekoa" /> 
11<#assign titulo = "Ezagutu bertatik bertara <strong>Merkatuan Prest topaketan</strong> aurkeztuko diren enpresak, produktuak eta zerbitzuak." /> 
12<#assign txtBuscar = "Bilatu" /> 
13<#assign txtResultados = "emaitza" /> 
14<#assign txtAmbito = "Jarduketa-esparrua" /> 
15<#assign txtCate = "Kategoriak" /> 
16<#assign txtPlaceHolder = "Zer bilatu nahi duzu?" /> 
17 
18 
19 
20<#if locale == 'es_ES'> 
21    <#assign ningun_resultado = 'No ha habido ningún resultado para su búsqueda.<br />Vuelva a intentarlo con otros parámetros de búsqueda.' /> 
22    <#assign ningun_resultado_search = 'No ha habido ningún resultado para la búsqueda de <strong><span id="searchKey" class="searchKey"></span></strong>.<br> Vuelva a intentarlo con otros parámetros de búsqueda.' /> 
23    <#assign ningun_resultado_title = "Ningún resultado" /><#assign paginacion = 'Mostrando el intervalo <span id="delta_start">1</span> - <span id="delta_end">9</span> de <span id="total">${entries?size}</span> resultados.' /> 
24    <#assign next = "Siguiente" /> 
25    <#assign previous = "Anterior" /> 
26	 
27	<#assign titulo = "Conoce las diferentes empresas, productos y servicios que se presentarán en el <strong>Encuentro Merkatuan Prest.</strong>" /> 
28	<#assign txtBuscar = "Buscar" /> 
29	<#assign txtResultados = "resultados" /> 
30	<#assign txtAmbito = "Ambito de actuación" /> 
31	<#assign txtCate = "Categorías" /> 
32	<#assign txtPlaceHolder = "¿Qué quieres buscar?" /> 
33</#if> 
34 
35 
36<div class="container-fluid container-fluid-max-xl mt-2"> 
37	<div class="container"> 
38    <div class="row"> 
39        <div class="col-12"> 
40            <div class="text-title text-center gtm-max-md"> 
41                ${titulo} 
42            </div> 
43 
44        </div> 
45    </div> 
46    <div class="empty40"></div> 
47</div> 
48 
49<div class="container"> 
50    <div class="row"> 
51		<div class="col-md-12"> 
52            <div class="form-group input-text-wrapper"> 
53                <label class="control-label d-none" for="search-input"> 
54					${txtBuscar} 
55    			</label> 
56				<input class="field form-control" id="search-input" title="Buscar" name="search-input" placeholder="${txtPlaceHolder}" type="text" value=""> 
57        	</div> 
58			<div class="empty40"></div> 
59		</div> 
60	</div> 
61</div> 
62 
63     
64</div> 
65 
66 
67<div class="gtm-zerbiztuak-grid"> 
68  <div class="container"> 
69   
70    <div class="row"> 
71      <div class="col-12 col-md-4 col-lg-3"> 
72        <div class="d-md-none sia-aside-header d-flex justify-content-between align-items-center"> 
73          <div class="sia-aside-header__title">Iragazi</div> 
74        </div> 
75 
76        <div class="sia-aside"> 
77          <div class="d-md-none sia-aside-header d-flex justify-content-between align-items-center"> 
78            <div class="sia-aside-header__title">Iragazi</div> 
79 
80            <div class="sia-aside-header__close"> </div> 
81          </div> 
82 
83          <div class="tematicaCategories"> 
84            <h3 class="sia-text-primary text-uppercase">${txtAmbito}</h3> 
85 
86            <div> 
87				<#list assetsAmbito.getCategories() as ambito> 
88					<div class="checkbox my-4"><label><input name="ambito" type="checkbox" value="${ambito.getCategoryId()}" />  ${ambito.getTitle(locale)} </label></div>			 
89				</#list>               
90            </div> 
91          </div> 
92 
93          <div class="tematicaCategories"> 
94            <h3 class="sia-text-primary text-uppercase">${txtCate}</h3> 
95 
96            <div> 
97				<#list assetsCate.getCategories() as cate> 
98					<#assign txt = cate.getTitle(locale)/>					 
99					<div class="checkbox my-4"><label><input name="categoria" type="checkbox" value="${cate.getCategoryId()}" /> ${txt[4..]} </label></div> 
100				</#list>               
101            </div> 
102          </div> 
103        </div> 
104        <script> 
105          var closeFilter = document.querySelector('.sia-aside-header__close'); 
106 
107          if (closeFilter) { 
108            closeFilter.addEventListener('click', function() { 
109              var asideSia = document.querySelector('.sia-aside'); 
110              asideSia.classList.remove('active'); 
111            }); 
112
113 
114          var triggerFilter = document.querySelectorAll('.sia-aside-header__title'); 
115 
116          if (triggerFilter.length > 0) { 
117            Array.prototype.forEach.call(triggerFilter, function(e) { 
118              e.addEventListener('click', function() { 
119                var asideSia = document.querySelector('.sia-aside'); 
120                asideSia.classList.toggle('active'); 
121              }); 
122            }); 
123
124        </script> 
125      </div> 
126 
127      <div class="col-12 col-md-8 col-lg-9" id="pagination"> 
128        <div class="row"> 
129    		<div class="col-md-12 sia-filtros"> 
130    			<div class="results-count"> 
131    				<span id="results-count">${entries?size}</span> ${txtResultados} 
132    			</div> 
133    			<div id="container-filtros"></div> 
134    		</div> 
135		</div>   
136		<div class="row"> 
137            <div id="no-result"  
138				class="text-center col-12 sec-content resul-empty no-result" style="display:none;">  
139                <div class="box-content">  
140                    <div class="box-icon">&nbsp;</div>  
141                    <div class="box-text">  
142                        <h2 class="sec-title">${ningun_resultado_title}</h2> 
143                        <p class="sec-descrip">${ningun_resultado_search}</p> 
144                    </div>  
145                </div>  
146            </div> 
147             
148        <#if entries?has_content> 
149        	<#list entries as curEntry> 
150                <div class="col-12 col-lg-6 mb-4 card-merkatuan-prest"> 
151            		<#assign  
152                       assetRenderer = curEntry.getAssetRenderer() 
153                       journalArticle = assetRenderer.getAssetObject()       
154                    /> 
155            		<@liferay_journal["journal-article"] 
156                        articleId=journalArticle.getArticleId() 
157                        ddmTemplateKey="1372215" 
158                        groupId=journalArticle.getGroupId() 
159                    /> 
160                </div> 
161        	</#list> 
162        </#if> 
163        </div> 
164      </div> 
165    </div> 
166  </div> 
167</div> 
168 
169<!-- <a href="#" id="prev">prev</a> 
170<a href="#" id="next">next</a>  --> 
171<div id="capaPaginador" class="pagination"></div> 
172 
173<script src="https://cdnjs.cloudflare.com/ajax/libs/simplePagination.js/1.6/jquery.simplePagination.js"></script> 
174 
175<style> 
176.hideFicha{ 
177	display : none; 
178
179.showFicha{ 
180	display : inline; 
181
182</style> 
183 
184<script> 
185	//Poner title en cabecera 
186	var titleCabecera = "Produktuak eta zerbitzuak"; 
187	<#if locale == "es_ES"> 
188		titleCabecera = "Productos y servicios"; 
189	</#if> 
190	$(".gtm-header__title").html("<h3>" + titleCabecera + "</h3>"); 
191	 
192	var chks = $(".checkbox"); //ponemos los 3.x sangria 
193	var txtChk = chks[4].textContent; 
194	chks[4].innerHTML = txtChk; 
195	chks[4].style = "padding-left:20px !important"; 
196	 
197	for(var i = 5; i < 9; i++){ 
198		chks[i].classList.add("ml-5"); 
199		chks[i].classList.remove("my-4"); 
200	}	 
201 
202    var items = $(".card-merkatuan-prest"); 
203    var numItems = items.length; 
204    var max = 1; 
205    var pageNum=0; 
206    //var _=$('#rows .row'); 
207     
208    var start = 2;     
209    var itemsPer = 4; 
210     
211    $(document).ready(function() { 
212		//limpiar campos al recargar 
213		$("#search-input").val(""); 
214		$("input[type=checkbox]").prop("checked", false); 
215		 
216		//recortar todos las descripciones a n max 
217		var allDescr = $(".gtm-zerbitzuak__description"); 
218		var txt = "";	 
219		var maximo = 150; //caracteres maximo 
220		var max = maximo, posSpace = -1; 
221		for(var i = 0; i < allDescr.length; i++){ 
222			max = maximo; 
223			if(allDescr[i].innerHTML.length > max){ 
224				if(allDescr[i].innerHTML.substring(max - 1,max) != " "){ 
225					max = allDescr[i].innerHTML.indexOf(" ", max);					 
226				}	 
227
228				 
229			txt = allDescr[i].innerHTML.substring(0,max) + ' ... <span class="d-none">' + allDescr[i].innerHTML.substring(max + 1) + "</span>"; 
230			allDescr[i].innerHTML = txt; 
231
232		 
233		getCondiciones(); 
234		 
235		/*$("#capaPaginador").pagination({ 
236			items: numItems - start, 
237			itemsOnPage: itemsPer, 
238			cssStyle: 'light-theme', 
239			onPageClick : function(pageNumber){ 
240				$(".card-merkatuan-prest.showFicha").hide();				 
241				var _start = 1 , _end = 1; 
242				_end = pageNumber * itemsPer; 
243				_start = _end - itemsPer;				 
244            				 
245				$(".card-merkatuan-prest.showFicha").slice(_start, _end).show(); 
246             
247
248		});       	 
249        $(".card-merkatuan-prest").hide(); 
250		$(".card-merkatuan-prest").slice(0,itemsPer).show();*/ 
251		 
252		 $('html, body').animate({ scrollTop: $("#search-input").offset().top - 1000}, 10); 
253    }); 
254     
255 
256	$("#search-input").on("keyup", function(){ 
257		getCondiciones(); 
258	}); 
259 
260	var options = { 
261		searchInput: document.getElementById('search-input'), 
262
263	var data; 
264	document.addEventListener("DOMContentLoaded", function(event) { 
265		init(); 
266	}); 
267 
268 
269    var total=0; 
270    function init() { 
271    	data=document.querySelectorAll(".card-merkatuan-prest"); 
272    	total=data.length; 
273    	//registerInput() 
274
275     
276var arrCondiciones = []; 
277 
278$('input[name="categoria"]').click(function(e) { 
279	getCondiciones(); 
280	 
281}); 
282 
283$('input[name="ambito"]').click(function(e) { 
284	getCondiciones(); 
285}); 
286 
287function getCondiciones(){ 
288		$(".card-merkatuan-prest").hide(); 
289		$("#no-result").hide();		 
290		 
291		var allChecksAmbito = $('input[name="ambito"]:checked'); 
292		var allChecksCate = $('input[name="categoria"]:checked'); 
293		var arrCond = []; 
294		var numItemsVisible = 0; 
295		var isNothingCompare = false; 
296		if(allChecksAmbito.length == 0 && allChecksCate.length == 0 && options.searchInput == ""){			 
297			isNothingCompare = true; 
298		}	 
299		if(allChecksCate.length > 0){ 
300			for(var i = 0; i < allChecksCate.length; i++) arrCond.push(allChecksCate[i].value); 
301
302		if(allChecksAmbito.length > 0){ 
303			for(var i = 0; i < allChecksAmbito.length; i++) arrCond.push(allChecksAmbito[i].value); 
304
305		if(options.searchInput.value.trim() != "" ){ 
306			arrCond.push("txt:" + options.searchInput.value); 
307
308		 
309		 
310		var all = $(".gtm-zerbitzuak-item"); // el item dentro de la ficha con los data-XXX  
311		var isCumple = false; 
312		var numCond = arrCond.length; 
313		 
314		for(var i = 0; i < all.length; i++){ 
315			all[i].parentNode.parentNode.classList.remove("showFicha"); 
316			all[i].parentNode.parentNode.classList.remove("hideFicha"); 
317			all[i].parentNode.parentNode.style.display = ""; 
318			for(var x = 0; x < arrCond.length; x++){ 
319				if(isNothingCompare){ //no hay checks seleccionados, muestra todo; 
320					numCond = 0;  
321					break; 
322				}else if(all[i].getAttribute("data-ambito").indexOf("#" + arrCond[x] + "#") != -1 
323					|| all[i].getAttribute("data-categoria").indexOf("#" + arrCond[x] + "#") != -1){ 
324					numCond--; 
325
326
327			 
328			if(options.searchInput.value.trim() != ""){ //tiene texto				 
329				let title_text = all[i].textContent; 
330				let desc_text = all[i].textContent; 
331				let author_text = all[i].textContent; 
332				if (match(title_text, options.searchInput.value) || match(desc_text, options.searchInput.value) || match(author_text, options.searchInput.value)) { 
333					numCond--; 
334
335
336			 
337			if(numCond == 0){ //cumple con todo 
338				all[i].parentNode.parentNode.classList.add("showFicha");				 
339				numItemsVisible++;				 
340			}else{ 
341				all[i].parentNode.parentNode.classList.add("hideFicha");    				 
342			}	 
343			numCond = arrCond.length; 
344
345		 
346		var dd = document.querySelectorAll(".card-merkatuan-prest:not(.hide)"); 
347		$("#results-count").html(numItemsVisible);		 
348		 
349		if(numItemsVisible == 0) $("#no-result").show(); 
350		 
351		$("#capaPaginador").pagination({ 
352			items: numItemsVisible, 
353			itemsOnPage: itemsPer, 
354			cssStyle: 'light-theme', 
355			prevText : '<', 
356			nextText: '>', 
357			onPageClick : function(pageNumber){ 
358				$(".card-merkatuan-prest.showFicha").hide();				 
359				var _start = 1 , _end = 1; 
360				_end = pageNumber * itemsPer; 
361				_start = _end - itemsPer;				 
362            				 
363				$(".card-merkatuan-prest.showFicha").slice(_start, _end).show(); 
364				 
365				$('html, body').animate({ scrollTop: $("#search-input").offset().top - 200}, 500); 
366 
367 
368
369    });	 
370	$(".card-merkatuan-prest.showFicha").slice(itemsPer,numItemsVisible).hide(); 
371	 
372	 
373	 
374
375 
376 
377 
378 
379function match(str, crit) { 
380	if (!str) return false 
381	str = cleanCharacters(str); 
382	crit = cleanCharacters(crit); 
383	 
384	//return (str.indexOf(crit) != -1) ? true  : false; 
385	 
386 
387	return crit.split(' ').filter(function (word) { 
388		return str.indexOf(word) >= 0 
389	}).length === crit.split(' ').length; 
390
391 
392 
393function cleanCharacters(_txt){ 
394	_txt = _txt.trim().toLowerCase(); 
395	return _txt.replaceAll("í","i").replaceAll("á","a").replaceAll("é","e").replaceAll("ó","o").replaceAll("ú","u"); 
396}	 
397 
398/*function registerInput () { 
399	options.searchInput.addEventListener('keyup', function (e) {		 
400		getCondiciones(); 
401	}) 
402}*/ 
403 
404function filter(evt) { 
405	findMatches(options.searchInput.value); 
406
407 
408 
409 
410 
411</script> 

​​​​​​​