Se ha producido un error al procesar la plantilla.
Java method "com.sun.proxy.$Proxy644.getArticle(long, String)" threw an exception when invoked on com.sun.proxy.$Proxy644 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@7481d486"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign article = journalarticleLocal...  [in template "20099#20135#268811" at line 12, column 5]
----
1<#if recetarelacionada.getData()?? && recetarelacionada.getData()!= ""> 
2 
3    <#assign  
4	    serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() 
5	    themeDisplay = serviceContext.getThemeDisplay()  
6	    url_facebook = "https://www.facebook.com/sharer/sharer.php?u=" 
7	    url_twitter = "https://twitter.com/intent/tweet?text="  
8	    url_whatsapp = "whatsapp://send?text=" 
9	    current_url = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()  
10	/> 
11    <#assign journalarticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/> 
12    <#assign article = journalarticleLocalService.getArticle(themeDisplay.getScopeGroupId() , recetarelacionada.getData())/> 
13    <#assign id = article.id?number?long > 
14     
15    <#assign artic =journalarticleLocalService.getJournalArticle(id)/> 
16     
17    <#assign document = saxReaderUtil.read(article.getContent())> 
18    <#assign tituloReceta = document.selectSingleNode("/root/dynamic-element[@name='titulo']/dynamic-content") > 
19    <#assign fotoReceta = document.selectSingleNode("/root/dynamic-element[@name='fotodeportada']/dynamic-content") > 
20    <#assign descripcionReceta = document.selectSingleNode("/root/dynamic-element[@name='introduccion']/dynamic-content") > 
21 
22    <#assign locale = themeDisplay.getLocale().getLanguage()> 
23    <#if locale == 'ca'> 
24    	<#assign locale = 'va'> 
25    </#if> 
26    <#assign articFolder = artic.getFolder().getExpandoBridge().getAttributes() > 
27    <#assign slugArtic = "slug_" + locale> 
28    <#assign pathReceta = articFolder[slugArtic] + artic.getUrlTitle() > 
29 
30</#if> 
31 
32<style> 
33     
34    #visor-vinos .glyphicon { 
35        color: black; 
36        margin-right: 1rem; 
37        font-size: 1.4rem; 
38
39 
40    #visor-vinos .wine-intro { 
41        color: black; 
42        font-size: 1.6rem; 
43        font-weight: 700; 
44
45 
46    #visor-vinos .wine-cellar-name { 
47        color: #0078BF; 
48        transform: scaleX(0.9); 
49        font-size: 1.6rem; 
50        font-weight: 700; 
51        transform-origin: left; 
52
53 
54    #visor-vinos h2 { 
55        transform-origin: center !important; 
56
57 
58    #visor-vinos .recomended-recipe { 
59        display: flex; 
60        margin: 0 auto; 
61
62 
63    #visor-vinos .recomended-recipe img { 
64        max-width: 20rem; 
65
66     
67    #visor-vinos .bg-blue { 
68        background-color: #0078BF; 
69
70 
71    #visor-vinos .bg-red { 
72        background-color: #CB4F40; 
73
74 
75    #visor-vinos .bg-gray { 
76        background-color: #f0f0f0; 
77
78     
79    #visor-vinos .opaque-white { 
80        color: rgba(255, 255, 255); 
81
82     
83    #visor-vinos .text-white { 
84        color: #fff; 
85
86     
87    #visor-vinos .bodega { 
88        display: flex; 
89        flex-flow: row nowrap; 
90        align-items: center; 
91        justify-content: space-around; 
92
93     
94    #visor-vinos ul { 
95        list-style-type: none; 
96        margin: 0; 
97        padding: 0; 
98 
99
100 
101    #visor-vinos .data { 
102        display: flex; 
103        align-items: baseline; 
104        justify-content: space-around; 
105
106 
107    #visor-vinos #organoleptic-form ul > li { 
108        margin-bottom: 0.75rem 
109
110     
111    #visor-vinos #data-sheet ul > li { 
112        margin-bottom: 0.75rem 
113
114     
115    #visor-vinos .bodega > ul > li { 
116        font-size: 1.5rem; 
117        padding: 0.75rem 2rem; 
118
119     
120    #visor-vinos .bodega > ul > li > a{ 
121        color: #000; 
122
123 
124    #visor-vinos .ensign { 
125        display: flex; 
126        justify-content: space-around; 
127        margin: 1rem; 
128
129     
130    #visor-vinos .title-medium { 
131    	letter-spacing: 0.1rem; 
132    	margin-bottom: 0.5rem; 
133		font-family: inherit; 
134
135 
136    @media (min-width: 600px) { 
137        #visor-vinos .ensign { 
138            display: flex; 
139            justify-content: space-around; 
140            margin: 5rem 30rem; 
141
142
143	 
144	.wine-intro{ 
145		margin-bottom: 1rem; 
146
147     
148</style> 
149 
150<div id="visor-vinos"> 
151    <div class="static-header"> 
152        <div class="wrapped-content">             
153            <div class="header-title"> 
154                <h1 class="f-anton title-h1">${titulo.getData()}</h1> 
155            </div> 
156 
157            <div data-html2canvas-ignore class="social-section"> 
158            	<div class="fb-like" data-href="https://www.facebook.com/comunitatvalenciana" data-width="100" data-layout="button" data-action="like" data-size="large" data-share="false"></div> 
159                <div id="btn-share" class="btn share-space position-relative" href="#" role="button" tabindex="0"> 
160                    <i class="cv-share-logo icon-sm-2x" aria-hidden="true"></i> 
161                    <span class="f-source-sans-pro text-uppercase bg-main text-gray button-text font-weight-bold"><@liferay.language key="portal.share.text" /></span> 
162 
163                    <div id="panel-red-social" class="d-none mt-2 pt-2 pb-2 pl-5 pr-5 position-absolute bg-white" style="z-index: 1;top:100%;"> 
164                        <a aria-label="link" class="btn btn-link" href="${url_facebook}${current_url}" role="button"> 
165                            <i class="cv-facebook icon-sm-2x" aria-hidden="true"></i> 
166                            <span class="visually-hidden"><@liferay.language key="share.facebook.icon" /></span> 
167                        </a> 
168                        <a aria-label="link" class="btn btn-link" href="${url_twitter}${current_url}" role="button"> 
169                            <i class="cv-twitter-logo icon-sm-2x" aria-hidden="true"></i> 
170                            <span class="visually-hidden"><@liferay.language key="share.twitter.icon" /></span> 
171                        </a> 
172                        <a aria-label="link" class="btn btn-link d-block d-lg-none" href="${url_whatsapp}${current_url}" role="button"> 
173                            <i class="cv-whatsapp icon-sm-2x" aria-hidden="true"></i> 
174                            <span class="visually-hidden"><@liferay.language key="share.whatsapp.icon" /></span> 
175                        </a> 
176                        <a aria-label="link" class="btn btn-link d-none cv-email-icon" href="#" role="button"> 
177                            <i class="cv-email-logo icon-sm-2x" aria-hidden="true"></i> 
178                        	<span class="visually-hidden"><@liferay.language key="share.email.icon" /></span> 
179                        </a> 
180                        <a aria-label="link" class="btn cv-email-icon" href="mailto:name@email.com?subject=Comunitat Valenciana&amp;body=${current_url}" role="button"> 
181                            <i class="cv-email-logo icon-sm-2x" aria-hidden="true"></i> 
182                        	<span class="visually-hidden"><@liferay.language key="share.email.icon" /></span> 
183                        </a> 
184                    </div> 
185                </div> 
186 
187                <a class="btn" href="javascript:printCanvasPdf();" role="button" aria-label=link" > 
188                    <i class="cv-pdf-logo icon-sm-2x" aria-hidden="true"></i> 
189                    <span class="visually-hidden"><@liferay.language key="pdf.icon" /></span> 
190                </a> 
191                <a class="btn" href="javascript:printPage();" role="button" aria-label=link" > 
192                    <i class="cv-printer-logo icon-sm-2x" aria-hidden="true"></i> 
193                    <span class="visually-hidden"><@liferay.language key="printer.icon" /></span> 
194                </a> 
195            </div> 
196        </div> 
197        <#assign has_bg_image = fotodeportada.getData()?? && fotodeportada.getData() != ""> 
198        <div class='header-banner ${has_bg_image?then("has-bg", "")}' style = "background-image: url('${fotodeportada.getData()}')"></div> 
199    </div> 
200 
201    <div class="wrapped-content"> 
202        <#if introduccion.getData()?? && introduccion.getData() != ""> 
203            <div class="wine-intro"> 
204                ${introduccion.getData()} 
205            </div> 
206        </#if> 
207        <#if descripcion.getData()?? && descripcion.getData() != ""> 
208            <div id="wine-description" class="read-less"> 
209                ${descripcion.getData()} 
210            </div> 
211        </#if> 
212         
213        <!-- read more btn -->	 
214		<button onclick="readMore()" id="readMoreBtn"><@liferay.language key="read-more" /></button> 
215         
216        <div class = "ensign"> 
217            <#if imagen.getData()?? > 
218            <img loading="lazy" src="${imagen.getData()}" alt="Unity"/> 
219            </#if> 
220            <#if Imagen80kg.getData()?? && Imagen80kg.getData() != ""> 
221            <img loading="lazy" src="${Imagen80kg.getData()}" alt="label"/> 
222            </#if> 
223        </div> 
224    </div> 
225    <div class="bg-gray pt-5 pb-5 container-fluid"> 
226        <div> 
227            <h2 class="title-big"><@liferay.language key="portal.template.vino.theWinery" /></h2> 
228            <div class="row justify-content-center"> 
229                <div class="col-12 col-md-6 col-lg-3"> 
230                    <ul> 
231                        <#if NombreDeLaBodega.getData()?? && NombreDeLaBodega.getData() != ""> 
232                        <li class="wine-cellar-name pb-3">${NombreDeLaBodega.getData()}</li> 
233                        </#if> 
234                        <#if direccionbodega.getData()?? && direccionbodega.getData() != ""> 
235                        <li class="pb-2"><i class="glyphicon glyphicon-map-marker"></i>${direccionbodega.getData()}</li> 
236                        </#if> 
237                        <#if municipio.getSiblings()?has_content> 
238                        <#list municipio.getSiblings() as cur_municipio> 
239                        <li class="pb-2"><i class="glyphicon glyphicon-map-marker"></i>${cur_municipio.getData()}</li> 
240                        </#list> 
241                        </#if> 
242                        <#if telefono.getData()?? && telefono.getData() != ""> 
243                        <li class="pb-2"><i class="glyphicon glyphicon-earphone"></i>${telefono.getData()}</li> 
244                        </#if> 
245                        <#if email.getData()?? && email.getData() != ""> 
246                        <li class="pb-2"><i class="glyphicon cv-email-logo"></i><a href="${email.getData()}">${email.getData()}</a></li> 
247                        </#if> 
248                        <#if web.getData()?? && web.getData() != ""> 
249                        <li><i class="glyphicon cv-web"></i><a href= "${web.getData()}">${web.tituloweb.getData()}</a></li> 
250                        </#if> 
251                    </ul> 
252                </div> 
253                <div class="col-12 col-md-3 col-lg-3"> 
254                    <#if Imagengaou.getData()?? && Imagengaou.getData() != ""> 
255                    <img loading="lazy" class="justify-content-center" src = "${Imagengaou.getData()}" alt="logo"/> 
256                    </#if> 
257                </div> 
258            </div> 
259        </div> 
260    </div> 
261 
262    <div class="wrapped-content"> 
263            <div class="data row mt-5"> 
264                <div id="data-sheet" class="col-12 col-md-4 bg-blue text-white p-5"> 
265                    <h2 class="title-big opaque-white"><@liferay.language key="portal.template.vino.dataSheet" /></h2> 
266                    <#if denominacionorigen.getData()?? && denominacionorigen.getData() != ""> 
267                        <ul> 
268                            <li><b><@liferay.language key="portal.template.vino.appellationOfOrigin" />:</b> ${denominacionorigen.getData()}</li> 
269                            </#if> 
270                            <#if tipovino.getData()?? && tipovino.getData() != ""> 
271                            <li><b><@liferay.language key="portal.template.vino.typeOfWine" />:</b> ${tipovino.getData()}</li> 
272                            </#if> 
273                            <#if variedad.getData()?? && variedad.getData() != ""> 
274                            <li><b><@liferay.language key="portal.template.vino.Variety" />:</b> ${variedad.getData()}</li> 
275                            </#if> 
276                            <#if graduacion.getData()?? && graduacion.getData() != ""> 
277                            <li><b><@liferay.language key="portal.template.vino.graduation" />:</b> ${graduacion.getData()}</li> 
278                        </ul> 
279                    </#if> 
280                </div> 
281                <div id="organoleptic-form" class ="col-12 col-md-7 bg-red text-white p-5"> 
282                    <h2 class = "title-big opaque-white"><@liferay.language key="portal.template.vino.organolepticForm" /></h2> 
283                    <#if aspecto.getData()?? && aspecto.getData() != "">  
284                        <ul> 
285                        <li><b><@liferay.language key="portal.template.vino.appearance" />:</b> ${aspecto.getData()}</li> 
286                    </#if> 
287                    <#if Color.getData()?? && Color.getData() != ""> 
288                        <li><b><@liferay.language key="portal.template.vino.color" />:</b> ${Color.getData()}</li> 
289                    </#if> 
290                    <#if nariz.getData()?? && nariz.getData() != ""> 
291                        <li><b><@liferay.language key="portal.template.nose" />:</b> ${nariz.getData()}</li> 
292                    </#if> 
293                    <#if boca.getData()?? && boca.getData() != ""> 
294                        <li><b><@liferay.language key="portal.template.vino.mouth" />:</b> ${boca.getData()}</li> 
295                    </#if> 
296                    <#if postgusto.getData()?? && postgusto.getData() != ""> 
297                        <li><b><@liferay.language key="portal.template.vino.aftertaste" />:</b> ${postgusto.getData()}</li> 
298                    </#if> 
299                    <#if temperatura.getData()?? && temperatura.getData() != ""> 
300                        <li><b><@liferay.language key="portal.template.vino.temperature" />:</b> ${temperatura.getData()}</li> 
301                    </#if> 
302                    <#if maridaje.getData()?? && maridaje.getData() != ""> 
303                        <li><b><@liferay.language key="portal.template.vino.pairing" />:</b> ${maridaje.getData()}</li> 
304                        <ul> 
305                    </#if> 
306                </div> 
307            </div> 
308            <div class="pt-5 pb-5"> 
309            <#if document??> 
310               <h2 class = "title-big"><@liferay.language key="portal.template.vino.recommendedRecipes" /></h2> 
311                	<span class="d-none">.</span> 
312                    <div class="recomended-recipe row justify-content-center"> 
313                        <div class="col col-lg-3"> 
314                            <img loading="lazy" class="image-result" src="${fotoReceta.getText()}" alt="<@liferay.language key="portal.template.vino.recommendedRecipes" />"/> 
315                        </div> 
316                        <div class="col col-lg-3"> 
317                            <div class="title-medium"><a href="${pathReceta}">${tituloReceta.getText()}</a></div> 
318                            <p class="subtitle-result">${descripcionReceta.getText()}</p> 
319                        </div> 
320                    </div> 
321            <#else> 
322                <h2 class="recomendada"><@liferay.language key="portal.template.vino.thereAreNoRecommendedRecipes" /></h2> 
323            </#if>  
324            </div> 
325        </div> 
326</div> 
327<script type="text/javascript"> 
328    (function(window) { 
329        "use strict"; 
330        $("#visor-vinos #btn-share").click( 
331          function(){ 
332              let panelRedSocial=$("#visor-vinos #panel-red-social"); 
333              if(panelRedSocial.hasClass("d-none")){ 
334                  panelRedSocial.removeClass("d-none"); 
335              }else{ 
336                  panelRedSocial.addClass("d-none"); 
337
338          }); 
339        $("#btn-share").on("focus", function(){ 
340    		$("#panel-red-social").removeClass("d-none"); 
341    	}); 
342    	 
343    	$(".cv-email-icon").on("focusout", function(){ 
344    		$("#panel-red-social").addClass("d-none"); 
345    	}); 
346    })(window); 
347     
348	/* read more btn */ 
349	 
350    function readMore() { 
351	  var moreText = document.getElementById("wine-description"); 
352	  var btnText = document.getElementById("readMoreBtn"); 
353 
354	  if (moreText.classList.contains('read-less')) { 
355	    btnText.innerHTML = '<@liferay.language key="read-less" />'; 
356	    moreText.classList.remove("read-less"); 
357	  } else {	     
358	    btnText.innerHTML = '<@liferay.language key="read-more" />';	 
359	    moreText.classList.add("read-less");   
360
361
362</script>