Asset Publisher

An error occurred while processing the template.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.liferay.portlet.journal.service.JournalArticleLocalService")  [in template "20099#20135#51951" at line 12, column 39]

----
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 journalArticleLocalService = ...  [in template "20099#20135#51951" at line 12, column 1]
----
1<#if entries?has_content>  
2    <#list entries as eventEntry>  
3		<#assign renderer=eventEntry.getAssetRenderer()/> 
4		<#assign journalArticle = renderer.getArticle()/> 
5        <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, eventEntry,!stringUtil.equals(assetLinkBehavior, "showFullContent")) /> 
6           
7		 
8		<#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) /> 
9		<#assign rootElement = document.getRootElement() />  
10        
11 
12<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.portlet.journal.service.JournalArticleLocalService") /> 
13<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.portlet.asset.service.AssetLinkLocalService") /> 
14<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.portlet.asset.service.AssetEntryLocalService") /> 
15 
16<#assign currentArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) /> 
17<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() /> 
18<#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.portlet.journal.model.JournalArticle", currentArticleResourcePrimKey) /> 
19<#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() /> 
20<#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) /> 
21 
22<#list currentArticleRelatedLinks as related_entry> 
23    <#assign relatedAssetEntryId = related_entry.getEntryId2() /> 
24    <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
25    <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
26    <#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) /> 
27    <#assign relatedArticleId = relatedArticle.getArticleId() /> 
28    Related Article ID: ${relatedArticleId}<br> 
29</#list> 
30 
31 
32	 
33		<#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='campaign_title']")  /> 
34		<#assign campaign_title= xPathSelector.selectSingleNode(rootElement).getStringValue() /> 
35		<#assign title= getterUtil.getString(campaign_title) /> 
36		${title}<br> 
37			 
38    	<#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='overview']")  /> 
39		<#assign overview= xPathSelector.selectSingleNode(rootElement).getStringValue() /> 
40		<#assign ovw= getterUtil.getString(overview) /> 
41		${ovw}<br>		 
42			 
43		 
44		 
45	 
46	 
47	</#list> 
48 
49 
50</#if> 

Sampleee

lenovooooooooo
this is my overviewwwwwwwwwwww