S'ha produït un error mentre es processava la plantilla.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.valencia.liferay.common.utils.api.CommonUtilsApi")  [in template "20115#20151#195335" at line 1, column 26]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign commonUtilsApi = serviceLocat...  [in template "20115#20151#195335" at line 1, column 1]
----
1<#assign commonUtilsApi =serviceLocator.findService("com.valencia.liferay.common.utils.api.CommonUtilsApi")/> 
2<#assign portletRequestModel = objectUtil("com.liferay.portal.kernel.portlet.PortletRequestModel", renderRequest, renderResponse) /> 
3 
4<#if titularBusqueda?? && titularBusqueda.getData()?has_content> 
5    <h2 class="bloque_titulo">${titularBusqueda.getData()}</h2> 
6</#if> 
7 
8<#assign bloquesNew = commonUtilsApi.replaceUrlWithUID("${themeDisplay.getURLCurrent()}",bloques.getData())/> 
9${bloquesNew} 
10 
11<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
12<#assign AssetLinkLocalService = serviceLocator.findService("com.liferay.asset.link.service.AssetLinkLocalService") /> 
13 
14 
15<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
16<#assign journalId = .vars['reserved-article-id'].data/> 
17 
18<#attempt> 
19    <#assign article = JournalArticleLocalService.fetchArticle( groupId ,journalId) > 
20<#recover> 
21</#attempt> 
22<#if article??> 
23<#assign journalArticleClassname = "com.liferay.journal.model.JournalArticle" > 
24<#assign articleEntry = AssetEntryLocalService.getEntry(journalArticleClassname, article.getResourcePrimKey())> 
25<#assign articleRelatedEntries = AssetLinkLocalService.getDirectLinks(articleEntry.getEntryId()) > 
26 
27<#if articleRelatedEntries?has_content> 
28 
29	<#assign relatedTemplateKey = "38113" > 
30 
31 
32	<#list articleRelatedEntries as relatedAsset> 
33		<#assign relatedEntry = AssetEntryLocalService.getEntry(relatedAsset.getEntryId2()) > 
34		<#assign entryClassPK = relatedEntry.getClassPK() > 
35 
36		<#assign journalArticleClassname = "com.liferay.journal.model.JournalArticle" > 
37		<#if journalArticleClassname==relatedEntry.getClassName()> 
38			<#assign relatedArticle = JournalArticleLocalService.fetchLatestArticle(entryClassPK) > 
39			<#if relatedArticle.getDDMTemplateKey() == relatedTemplateKey > 
40				<#assign relatedArticleContent = JournalArticleLocalService.getArticleContent(relatedArticle, relatedArticle.getDDMTemplateKey(), "view", locale, portletRequestModel,themeDisplay)> 
41				<div class="bloque-cuadro"> 
42				        <h3 class="titulo-bloque"><@liferay.language key="informacion_adicional" /></h3> 
43					     <#assign urlNew = commonUtilsApi.replaceUrlWithUID("${themeDisplay.getURLCurrent()}",relatedArticleContent)/> 
44					    <div class="col-12 pb-3" >${urlNew}</div> 
45				    </div> 
46 
47			</#if> 
48		</#if> 
49	</#list> 
50</#if> 
51</#if> 
52 
53<style type="text/css"> 
54 
55    .bloque-cuadro{ 
56      border:3px solid; 
57      border-color:#dadada; 
58      padding-left:15px; 
59      padding-right:15px; 
60      margin-top:15px; 
61
62 
63    .titulo-bloque{ 
64      margin-top: 3%; 
65      margin-bottom: 3%; 
66      color:4C4C4C; 
67
68 
69</style>