2016-07-07 19 views
0

Hallo Kollegen Liferay'ers,Liferay 7 Freemarker Vorlage. statisticUtil hat zu NULL ausgewertet oder fehlt - Versucht, JournalArticle's Kategorien zu erhalten

Ich versuche, die Kategorien eines JournalArticle mit einer Freemarker Vorlage zu erhalten.

habe ich versucht, diesen Code:

<#assign journalArticleId = .vars['reserved-article-id'].data> 
<#assign journalArticleResourceLocalServiceUtil = staticUtil["com.liferay.portlet.journal.service.JournalArticleResourceLocalServiceUtil"]> 
<#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.portlet.asset.service.AssetCategoryLocalServiceUtil"]> 

<#assign articleResourcePK = journalArticleResourceLocalServiceUtil.getArticleResourcePrimKey(groupId, journalArticleId)/> 
<#assign categoryList=assetCategoryLocalServiceUtil.getCategories("com.liferay.portlet.journal.model.JournalArticle",articleResourcePK) > 

<#list categoryList as categoryList> 
${categoryList.getName()} 
</#list> 

ich diese Zeilen an den portal-setup-wizzard.properties

freemarker.engine.restricted.classes= 
freemarker.engine.restricted.variables= 
freemarker.engine.restricted.packages= 

Wenn ich den Code ausführen es diesen Fehler wirft auch hinzugefügt: jemand

08:26:30,582 ERROR [http-nio-8080-exec-10][runtime:60] Error executing FreeMarker template 
FreeMarker template error: 
The following has evaluated to null or missing: 
==> staticUtil [in template "20202#20246#41671" at line 14, column 51] 

---- 
Tip: If the failing expression is known to be 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 journalArticleResourceLocalSe... [in template "20202#20246#41671" at line 14, column 1] 
---- 

Java stack trace (for programmers): 
---- 

Does hat eine Idee, was ich hier falsch mache? Vielen Dank im Voraus.

+0

Mögliches Duplikat [Freemarker nicht staticUtil in liferay 7 zuweisen] (https://stackoverflow.com/questions/373 41835/freemarker-not-assign-staticutil-in-liferay-7) – Manticore

Antwort

1

in liferay 7 haben sie die Einstellung von Freemarker Motor ändern jetzt die configurazion im Bedienfeld

Control Panel -> Configuration -> System Settings 
-> Foundation -> FreeMarker Engine -> Restricted Variables 

Sie hier zu entfernen, um die Filterung der Zugriffe auf Variablen

Das Paket des Objekts in liferay geändert werden 7, so dass der correcti Freemarker in diesem Fall ist

<#assign journalArticleId = .vars['reserved-article-id'].data> 
<#assign journalArticleResourceLocalServiceUtil = staticUtil["com.liferay.journal.service.JournalArticleResourceLocalServiceUtil"]> 
<#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]> 

<#assign articleResourcePK = journalArticleResourceLocalServiceUtil.getArticleResourcePrimKey(groupId, journalArticleId)/> 
<#assign categoryList=assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle",articleResourcePK) > 

<#list categoryList as categoryList> 
${categoryList.getName()} 
</#list> 
+0

Vielen Dank für Ihre Antwort die staticUtil funktioniert theoretisch jetzt, aber jetzt habe ich diesen Fehler: 'Low-Level-Nachricht: java.lang.ClassNotFoundException: com. liveray.journal.service.JournalArticleResourceLocalServiceUtil kann nicht gefunden werden von com.liferay.portal.template.freemarker_2.0.7 ', haben Sie irgendwelche Ideen, was das Problem ist? – balex

+0

Sie haben nur die staticUtil von eingeschränkten Variablen entfernt? –

+0

Nein, ich habe alle eingeschränkten Klassen und Variablen entfernt. – balex