Se ha producido un error al procesar la plantilla.
Java method "com.sun.proxy.$Proxy160.getDLFileEntry(long)" threw an exception when invoked on com.sun.proxy.$Proxy160 object "com.liferay.portlet.documentlibrary.service.impl.DLFileEntryLocalServiceImpl@563c1191"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign dlElement = dlFileEntryLocalS... [in template "20099#20135#113301" at line 150, column 49]
---- 1<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 2<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 3<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 4<#assign htmlUtil = serviceLocator.findService("com.liferay.portal.kernel.util.HtmlUtil") /> 5 6<#if request.getParameter("p_r_p_categoryId")?? > 7 <#assign selectedCategoryId = request.getParameter("p_r_p_categoryId") /> 8 <#assign assetCategory = assetCategoryLocalService.getCategory(selectedCategoryId?number) /> 9 10 ${portalUtil.setPageTitle(assetCategory.getTitle(locale) + " - PSN", request)} 11 ${portalUtil.setPageDescription(assetCategory.getDescription(locale), request)} 12</#if> 13 14<#assign ofTitle = languageUtil.get(locale, "global.of") /> 15<#assign byTitle = languageUtil.get(locale, "global.by") /> 16<#assign readMoreTitle = languageUtil.get(locale, "global.read.more") /> 17 18<#if entries?has_content> 19 20 21 <#assign curEntry = entries[0] /> 22 <#assign assetRenderer = curEntry.getAssetRenderer() /> 23 <#assign className = assetRenderer.getClassName() /> 24 25 <#if className == "com.liferay.journal.model.JournalArticle"> 26 <#assign journalArticle = assetRenderer.getArticle() /> 27 <#assign assetEntry = assetEntryLocalService.getEntry('com.liferay.journal.model.JournalArticle', journalArticle.resourcePrimKey) > 28 29 <#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())) /> 30 <#assign rootElement = document.getRootElement() /> 31 32 <#assign viewURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse,"") /> 33 34 <#assign textoArticulo = document.selectSingleNode("//dynamic-element[@name='textoArticuloParteUno']/dynamic-content") /> 35 <#assign autorArticulo = document.selectSingleNode("//dynamic-element[@name='nombreAutor']/dynamic-content") /> 36 37 <#assign xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@name='imagenArticulo']/dynamic-content") /> 38 <#assign imagenArticulo = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 39 40 <#if (imagenArticulo?has_content)> 41 <#assign imagenArticuloMap = imagenArticulo?eval /> 42 <#assign imagenArticuloFileEntryId = imagenArticuloMap["fileEntryId"]?number /> 43 </#if> 44 45 <#assign urlImage = "" /> 46 <#if (imagenArticulo?has_content) && (imagenArticuloFileEntryId != 0)> 47 <#assign dlElement = dlFileEntryLocalService.getDLFileEntry(imagenArticuloFileEntryId) /> 48 <#assign urlImage = portalUtil.getPortalURL(renderRequest) + '/documents/' + dlElement.getRepositoryId() + '/' + dlElement.getFolderId() + '/' + htmlUtil.escapeURL(dlElement.getTitle()) +'/' + dlElement.getUuid() + '?' + dlElement.getVersion() /> 49 </#if> 50 51 <#if urlImage??> 52 <section class="hero" style="background-image: url(${urlImage});"> 53 <#else> 54 <section class="hero"> 55 </#if> 56 <div class="hero-overlay"></div> 57 <div class="hero-content-wrapper"> 58 <div class="container h-100"> 59 <div class="row h-100"> 60 <div class="col-12 col-lg-8"> 61 <div class="hero-content"> 62 <div class="border-bar"></div> 63 <article class="hero-content-article bordered"> 64 <div class="hero-content-categories"> 65 <#assign categories = curEntry.getCategories() > 66 <#assign categoriesSize = categories?size /> 67 68 <#if (categoriesSize == 1)> 69 <a href="${getUrlCategory(categories?first)}" class="hero-content-category" rel="nofollow">${categories?first.getName()}</a> 70 </#if> 71 72 <#if (categoriesSize == 2)> 73 <a href="${getUrlCategory(categories?first)}" class="hero-content-category" rel="nofollow">${categories?first.getName()},</a> 74 <a href="${getUrlCategory(categories?last)}" class="hero-content-category" rel="nofollow">${categories?last.getName()}</a> 75 </#if> 76 77 <#if (categoriesSize > 2)> 78 <#assign sublistVar = curEntry.getCategories()[0..categoriesSize-2] /> 79 <#list sublistVar as categoryElement> 80 <a href="${getUrlCategory(categoryElement)}" class="hero-content-category" rel="nofollow">${categoryElement.getName()},</a> 81 </#list> 82 83 <a href="${getUrlCategory(categories?last)}" class="hero-content-category" rel="nofollow">${categories?last.getName()}</a> 84 </#if> 85 </div> 86 <div class="hero-content-body"> 87 <a href="${viewURL}" class="hero-content-title"> 88 <h1 class="h1-blog">${curEntry.getTitle(locale)}</h1> 89 </a> 90 </div> 91 <div class="hero-content-footer"> 92 <div class="hero-content-date"> 93 <img src="${themeDisplay.getPathThemeImages()}/calendar.svg" alt="icon"> 94 <#assign displayDate = assetRenderer.getDisplayDate() /> 95 <p>${displayDate?string["dd"]} ${ofTitle} ${dateUtil.getDate(displayDate, 'MMMM', locale)} ${ofTitle} ${displayDate?string["yyyy"]}<#if autorArticulo.getStringValue() != "" >, ${byTitle} ${autorArticulo.getStringValue()}</#if></p> 96 </div> 97 </div> 98 <div class="hero-content-resume"> 99 <@textoArticuloResumen textoArticuloSubstring="${textoArticulo.getStringValue()}"/> 100 </div> 101 </article> 102 </div> 103 <div class="hero-button-wrapper"> 104 <a href="${viewURL}" rel="nofollow"><button class="btn btn-psn primary-btn variation-btn">${readMoreTitle}</button></a> 105 </div> 106 </div> 107 </div> 108 </div> 109 </div> 110 </section> 111 112 </#if> 113 114 <#if (entries?size > 1) > 115 116 <section class="last-posts"> 117 <div class="container"> 118 119 <#list entries[1..] as curEntry> 120 121 <#assign assetRenderer = curEntry.getAssetRenderer() /> 122 <#assign className = assetRenderer.getClassName() /> 123 124 <#if className == "com.liferay.journal.model.JournalArticle"> 125 <#assign journalArticle = assetRenderer.getArticle() /> 126 <#assign assetEntry = assetEntryLocalService.getEntry('com.liferay.journal.model.JournalArticle', journalArticle.resourcePrimKey) > 127 128 <#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())) /> 129 <#assign rootElement = document.getRootElement() /> 130 131 <#assign viewURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse,"") /> 132 133 <#assign textoArticulo = document.selectSingleNode("//dynamic-element[@name='textoArticuloParteUno']/dynamic-content") /> 134 <#assign autorArticulo = document.selectSingleNode("//dynamic-element[@name='nombreAutor']/dynamic-content") /> 135 <#assign videoArticulo = document.selectSingleNode("//dynamic-element[@name='videoPrincipal']/dynamic-content").getStringValue() /> 136 137 138 <#assign xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@name='imagenArticulo']/dynamic-content") /> 139 <#assign imagenArticulo = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 140 141 142 143 <#if (imagenArticulo?has_content)> 144 <#assign imagenArticuloMap = imagenArticulo?eval /> 145 <#assign imagenArticuloFileEntryId = imagenArticuloMap["fileEntryId"]?number /> 146 </#if> 147 148 <#assign urlImage = "" /> 149 <#if (imagenArticulo?has_content) && (imagenArticuloFileEntryId != 0)> 150 <#assign dlElement = dlFileEntryLocalService.getDLFileEntry(imagenArticuloFileEntryId) /> 151 <#assign urlImage = portalUtil.getPortalURL(renderRequest) + '/documents/' + dlElement.getRepositoryId() + '/' + dlElement.getFolderId() + '/' + htmlUtil.escapeURL(dlElement.getTitle()) +'/' + dlElement.getUuid() + '?' + dlElement.getVersion() /> 152 </#if> 153 154 <article class="post-resume"> 155 <div class="row"> 156 <div class="col-12 col-lg-6 d-flex"> 157 <div class="post-image margined-top ${(videoArticulo?? && videoArticulo != "")?string('embed-video-post','')}"> 158 <#if urlImage?has_content> 159 <img src="${urlImage}" alt="${imagenArticuloMap["alt"]}"> 160 </#if> 161 <#if videoArticulo?? && videoArticulo != ""> 162 <button class="play-video-button play-thumbnail-video video-action" role="button" data-src="${videoArticulo}?enablejsapi=1" data-title="${curEntry.getTitle(locale)}"> 163 <svg version="1.1" id="play" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 100 100" enable-background="new 0 0 100 100" xml:space="preserve"> 164 <path class="play-icon" fill="#fff" d="M38,69c-1,0.5-1.8,0-1.8-1.1V32.1c0-1.1,0.8-1.6,1.8-1.1l34,18c1,0.5,1,1.4,0,1.9L38,69z"/> 165 <path class="stroke-solid" fill="none" stroke="#fff" d="M49.9,2.5C23.6,2.8,2.1,24.4,2.5,50.4C2.9,76.5,24.7,98,50.3,97.5c26.4-0.6,47.4-21.8,47.2-47.7 166 C97.3,23.7,75.7,2.3,49.9,2.5"/> 167 </svg> 168 </button> 169 </#if> 170 </div> 171 </div> 172 <div class="col-12 col-lg-6 d-flex"> 173 <div class="post-content margined-bottom margined-left"> 174 <div class="post-content-header"> 175 <div class="post-content-title title-dotted"> 176 <#assign categories = curEntry.getCategories() > 177 <#assign categoriesSize = categories?size /> 178 179 <#if (categoriesSize == 1)> 180 <a href="${getUrlCategory(categories?first)}" class="pre-title category-name" rel="nofollow">${categories?first.getName()}</a> 181 </#if> 182 183 <#if (categoriesSize == 2)> 184 <a href="${getUrlCategory(categories?first)}" class="pre-title category-name" rel="nofollow">${categories?first.getName()},</a> 185 <a href="${getUrlCategory(categories?last)}" class="pre-title category-name" rel="nofollow">${categories?last.getName()}</a> 186 </#if> 187 188 <#if (categoriesSize > 2)> 189 <#assign sublistVar = curEntry.getCategories()[0..categoriesSize-2] /> 190 <#list sublistVar as categoryElement> 191 <a href="${getUrlCategory(categoryElement)}" class="pre-title category-name" rel="nofollow">${categoryElement.getName()},</a> 192 </#list> 193 194 <a href="${getUrlCategory(categories?last)}" class="pre-title category-name" rel="nofollow">${categories?last.getName()}</a> 195 </#if> 196 197 <a href="${viewURL}"><h2 class="h2-blog">${curEntry.getTitle(locale)}</h2></a> 198 </div> 199 </div> 200 <div class="post-content-body"> 201 <@textoArticuloResumen textoArticuloSubstring="${textoArticulo.getStringValue()}"/> 202 </div> 203 <div class="post-content-footer"> 204 <div class="post-date"> 205 <img src="${themeDisplay.getPathThemeImages()}/calendar.svg" alt="icon"> 206 <#assign displayDate = assetRenderer.getDisplayDate() /> 207 <p>${displayDate?string["dd"]} ${ofTitle} ${dateUtil.getDate(displayDate, 'MMMM', locale)} ${ofTitle} ${displayDate?string["yyyy"]}</p> 208 </div> 209 <a href="${viewURL}" rel="nofollow"><button class="btn btn-psn gradient-btn">${readMoreTitle}</button></a> 210 </div> 211 </div> 212 </div> 213 </div> 214 </article> 215 216 </#if> 217 218 </#list> 219 220 </div> 221 </section> 222 223 </#if> 224 225 226 <div id="video-thumbnail-post" class="video-thumbnail-post"> 227 <div class="container"> 228 <div class="row"> 229 <div class="col-4"> 230 <div class="embed-responsive embed-responsive-16by9 embed-video-wrapper"> 231 <iframe class="embed-responsive-item embed-video" src="" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> 232 </div> 233 </div> 234 </div> 235 <div class="row"> 236 <div class="col-12"> 237 <article class="video-info"> 238 <div class="video-title"> 239 <h5 class="h5">Mi titulo</h5> 240 </div> 241 <div class="close-video"> 242 <button class="stop-video-button stop-thumbnail-video video-action is-playing" role="button"> 243 <svg version="1.1" id="stop" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 40 40" enable-background="new 0 0 40 40" xml:space="preserve"> 244 <g class="toggle"> 245 <line class="stop-icon" x1="15" y1="15" x2="25" y2="25" stroke="#424745"></line> 246 <line class="stop-icon" x1="25" y1="15" x2="15" y2="25" stroke="#424745"></line> 247 </g> 248 <path class="stroke-solid" d="M20 1c10.45 0 19 8.55 19 19s-8.55 19-19 19-19-8.55-19-19 8.55-19 19-19z" class="progress" stroke="#424745" fill="none"></path> 249 </svg> 250 </button> 251 </div> 252 </article> 253 </div> 254 </div> 255 </div> 256 </div> 257 258 <section class="d-flex justify-content-center pagination-psn"> 259 <nav> 260 <ul class="pagination"> 261 <li class="page-item"> 262 <a class="page-link page-previous" href="#" aria-label="Previous"> 263 <span aria-hidden="true">«</span> 264 <span class="sr-only">Previous</span> 265 </a> 266 </li> 267 <li class="page-item"> 268 <a class="page-link page-next" href="#" aria-label="Next"> 269 <span aria-hidden="true">»</span> 270 <span class="sr-only">Next</span> 271 </a> 272 </li> 273 </ul> 274 </nav> 275 </section> 276 277</#if> 278 279 280 281 282<#function getUrlCategory item> 283 <#assign categoryURL = layout.getGroup().getExpandoBridge().getAttribute("URLcategorias") /> 284 <#assign categoryURL += "?p_r_p_categoryId=" + item.getCategoryId()?string/> 285 <#return categoryURL> 286</#function> 287 288 289<#macro textoArticuloResumen textoArticuloSubstring > 290 <#if (textoArticuloSubstring?length > 200)> 291 292 <#if (textoArticuloSubstring[199] != ' ')> 293 <#assign textoArticuloNextSpace = textoArticuloSubstring?substring(199,220)> 294 <#assign textoArticuloNextSpaceIndex = textoArticuloNextSpace?index_of(' ')> 295 <#assign textoArticuloSubstringNextSpace = textoArticuloSubstring?substring(0,199+textoArticuloNextSpaceIndex)> 296 ${textoArticuloSubstringNextSpace} ... 297 <#else> 298 ${textoArticuloSubstring?substring(0,199)} ... 299 </#if> 300 <#else> 301 ${textoArticuloSubstring} 302 </#if> 303</#macro>