Novedades

Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")  [in template "10901#10934#RECOMANACIO_DETALL_GENIUS" at line 35, column 41]

----
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 assetLinkSvc = serviceLocator...  [in template "10901#10934#RECOMANACIO_DETALL_GENIUS" at line 35, column 17]
----
1<#assign articleId=.vars["reserved-article-id"].data> 
2<#assign articleUrlTitle=.vars["reserved-article-url-title"].data> 
3<#assign articleModifiedDate=.vars["reserved-article-modified-date"].data> 
4<#assign imgSrc=""> 
5 
6<script type="text/javascript"> 
7    function saveEntryAction(formName){ 
8		document.getElementById(formName).articleId.value=${articleId}; 
9		document.getElementById(formName).groupId.value=${getterUtil.getLong(groupId)}; 
10		document.getElementById(formName).submit(); 
11
12</script> 
13 
14<div class="recommendationDetail"> 
15 
16	<div class="recommendationData"> 
17 
18		<div class="recommendationValoraciones"> 
19				<#assign assetEntrySvc = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 
20                <#assign articleSvc = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
21				<#assign classNameSvc = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService")> 
22                <#assign articleClass = classNameSvc.getClassName("com.liferay.journal.model.JournalArticle")> 
23 
24                <#assign articleId = articleId> 
25 
26                <#assign groupIdLong = getterUtil.getLong(groupId)> 
27 
28                <#assign article = articleSvc.getArticle(groupIdLong, articleId)> 
29 
30                <#assign assetEntry = assetEntrySvc.fetchEntry(articleClass.getClassName(), article.getResourcePrimKey())> 
31 
32                <#assign assetEntryId = assetEntry.getEntryId()> 
33                <#assign assetEntryIdLong = getterUtil.getLong(assetEntryId)> 
34 
35                <#assign assetLinkSvc = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")> 
36				<#assign assetLinks = assetLinkSvc.getDirectLinks(assetEntryIdLong)> 
37 
38                <#list assetLinks as assetLink> 
39                    <#if (getterUtil.getLong(assetLink.getEntryId1()) == assetEntryIdLong)> 
40                        <#assign assetLinkEntry = assetEntrySvc.getEntry(getterUtil.getLong(assetLink.getEntryId2()))> 
41                    <#else> 
42                        <#assign assetLinkEntry = assetEntrySvc.getEntry($getterUtil.getLong($assetLink.getEntryId1()))> 
43                    </#if> 
44 
45                    <#assign classPK = assetLinkEntry.getClassPK()> 
46 
47                    <#assign relatedArticle = articleSvc.getLatestArticle(getterUtil.getLong(classPK))> 
48 
49                    <#if (relatedArticle!="")> 
50 
51                        <#assign relatedStructureId = relatedArticle.getDDMStructureKey()> 
52 
53                        <#if (relatedStructureId == "DOCUMENT_RECOMANAT" )> 
54 
55                            <#assign relatedArticleTemplateId = "RECOMANACIÓ_" + relatedStructureId> 
56 
57                        <#else> 
58 
59                            <#assign relatedArticleTemplateId = "RECOMANACIÓ_ALTRE"> 
60 
61                        </#if> 
62 
63                        <#assign languageId = localeUtil.toLanguageId(locale)> 
64 
65                        <#if ( image.getData() != "" )> 
66                            <#assign imgSrc = image.getData()> 
67                        <#elseif (image.urlExterna.getData() != "")> 
68                            <#assign imgSrc= image.urlExterna.getData()> 
69                        </#if> 
70                         
71                        ${journalContentUtil.getContent( relatedArticle.groupId, relatedArticle.articleId, relatedArticleTemplateId, viewMode, languageId, themeDisplay)} 
72 
73                    <#else> 
74 
75                        <p style="display:none">No se ha recuperado ningún artículo con el id [${articleConnection.secondaryId}]</p> 
76 
77                    </#if> 
78                </#list> 
79 
80       <#assign idUsuario = getterUtil.getLong(themeDisplay.getUser().getUserId())> 
81       <#if (idUsuario gt 0)> 
82        <#assign userService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService")> 
83        <#assign user = userService.getUserById(themeDisplay.getUser().getUserId())> 
84       </#if> 
85 
86		</div> <!--## .recommendationValoraciones--> 
87 
88		<div class="valoraciones"> 
89 
90			 
91 
92			<div class="a2a_kit a2a_kit_size_32 a2a_default_style" data-a2a-url="${themeDisplay.getPortalURL()}${themeDisplay.getURLCurrent()}" data-a2a-title="$titol.getData()" style="background-color: #e6e6e6;display: inline-block;" data-a2a-icon-color="#e6e6e6,#000000"> 
93<!-- AddToAny BEGIN --> 
94<div class="a2a_kit a2a_kit_size_32 a2a_default_style"> 
95<a class="a2a_dd" href="https://www.addtoany.com/share"></a> 
96<a class="a2a_button_email"></a> 
97<a class="a2a_button_print"></a> 
98</div> 
99 
100<script> 
101var a2a_config = a2a_config || {}; 
102a2a_config.onclick = false; 
103a2a_config.locale = "es"; 
104 
105</script> 
106 
107<script async src="https://static.addtoany.com/menu/page.js"></script></div> 
108			 
109			<#if (validator.isNotNull(user) && !user.isDefaultUser()) > 
110				<form name="fmGuardarRecomendacion${articleId}" action="" method="post"> 
111 
112					   <input type="button" name="save" value="[Guardar]" onclick="javascript:saveEntryAction("fmGuardarRecomendacion${articleId}");"/> 
113 
114				</form> 
115			</#if> 
116 
117		</div> <!--## .valoraciones--> 
118 
119 
120	</div> <!--## .recomendationData--> 
121 
122	<div class="recomanacio_detall"> 
123 
124		${recomendationText.getData()} 
125 
126	</div> 
127 
128	<#if (article!="")> 
129 
130		<#assign dataMod=article.getModifiedDate()> 
131		<span class="modificationDate">${dataMod?string["dd/MM/yyyy"]}</span>      
132 
133	</#if> 
134 
135</div> <!--## .recomendationDetail-->