资产发布器

Vinella Vita Marina

处理模板时发生错误。
Java method "com.sun.proxy.$Proxy1156.getArticle(long, String)" threw an exception when invoked on com.sun.proxy.$Proxy1156 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@52548c33"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign article = journalArticleLocal...  [in template "46861" in function "getCategoriesOfArticle" at line 135, column 1]
----
1<#-- 
2Add elements from the sidebar to define your template. Type "${" to use the 
3autocomplete feature. 
4--> 
5 
6<#-- 
7Add elements from the sidebar to define your template. Type "${" to use the 
8autocomplete feature. 
9--> 
10 
11<#include "${templatesPath}/46861"/> 
12 
13 
14 
15<div class="col-4"> 
16<#assign articleCategories = getCategoriesOfArticle()> 
17 
18       <#if articleCategories?has_content> 
19          Argomenti <br/> 
20         	<#list articleCategories as catEntry> 
21												<a class="chip chip-simple" href="#"> 
22											<span class="chip-label">${(catEntry)}</span> 
23													</a> 
24                   </#list> 
25          
26      </#if> 
27				  
28</div> 
29</div> 
30</div> 
31 
32 
33<div class="container-fluid my-3"> 
34<div class="row"> 
35    <div class="col-12 col-md-12"> 
36 
37    </div> 
38</div> 
39</div> 
40 
41<!-- inizio parte centrale --> 
42<div class="container"> 
43        <div class="row border-top border-light row-column-border row-column-menu-left"> 
44          <aside class="col-lg-3"> 
45            <div class="cmp-navscroll sticky-top" aria-labelledby="accordion-title-one"> 
46              <nav class="navbar it-navscroll-wrapper navbar-expand-lg" aria-label="INDICE DELLA PAGINA" data-bs-navscroll=""> 
47                <div class="navbar-custom" id="navbarNavProgress"> 
48                  <div class="menu-wrapper"> 
49                    <div class="link-list-wrapper"> 
50                      <div class="accordion"> 
51                        <div class="accordion-item"> 
52                          <span class="accordion-header" id="accordion-title-one"> 
53                            <button class="accordion-button pb-10 px-3" type="button" data-bs-toggle="collapse" data-bs-target="#collapse-one" aria-expanded="true" aria-controls="collapse-one"> 
54                              INDICE DELLA PAGINA 
55                              
56                            </button> 
57                          </span> 
58                          <div class="progress"> 
59                            <div class="progress-bar it-navscroll-progressbar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div> 
60                          </div> 
61                          <div id="collapse-one" class="accordion-collapse collapse show" role="region" aria-labelledby="accordion-title-one"> 
62                            <div class="accordion-body"> 
63                              <ul class="link-list" data-element="page-index"> 
64                                <li class="nav-item"> 
65                                  <a class="nav-link active" href="#descrizione"> 
66                                    <span class="title-medium">Telefono</span> 
67                                  </a> 
68                                </li> 
69 
70                                <li class="nav-item"> 
71                                  <a class="nav-link" href="#email"> 
72                                    <span class="title-medium">Email</span> 
73                                  </a> 
74                                </li> 
75                                 
76                              </ul> 
77                            </div> 
78                          </div> 
79                        </div> 
80                      </div> 
81                    </div> 
82                  </div> 
83                </div> 
84              </nav> 
85            </div>      </aside> 
86          <section class="col-lg-9 it-page-sections-container border-light"> 
87            <article id="telefono" class="it-page-section anchor-offset  mt-6" data-audio=""> 
88						  <h2 class="mb-3">Telefono</h2> 
89              <#if Telefono.getData() != ''><p>${Telefono.getData()}</p></#if>  
90            </article> 
91            <article id="email" class="it-page-section anchor-offset mt-5"> 
92                <h2 class="mb-3">Email</h2> 
93                <div class="row"> 
94                  <div class="col-12 col-sm-8 col-xl-6"> 
95                    <div class="card-wrapper rounded shadow-sm h-auto"> 
96                      <div class="card card-teaser card-teaser-info rounded shadow-sm p-4"> 
97                                          <div class="card-body pt-2"> 
98                                          <#if IndirizzoEmail.getData() != ''>${IndirizzoEmail.getData()}</#if> 
99                                          </div> 
100                       
101                      </div> 
102                    </div> 
103                  </div> 
104                   
105                </div> 
106            </article> 
107						 </section> 
108 
109 
110<script> 
111    /*document.addEventListener('DOMContentLoaded', function () {*/ 
112        // Ottieni tutti gli elementi con la classe "nav-link" 
113        var navLinks = document.querySelectorAll('.nav-link'); 
114 
115        // Aggiungi un gestore di eventi a ciascun elemento 
116        navLinks.forEach(function (link) { 
117            link.addEventListener('click', function (event) { 
118                // Rimuovi la classe "active" da tutti gli elementi 
119                navLinks.forEach(function (link) { 
120                    link.classList.remove('active'); 
121                }); 
122 
123                // Aggiungi la classe "active" solo all'elemento cliccato 
124                this.classList.add('active'); 
125            }); 
126 
127            // Aggiungi un gestore di eventi per l'hover 
128            link.addEventListener('mouseover', function (event) { 
129                // Aggiungi la classe "hover" quando l'elemento è passato sopra 
130                this.classList.add('hover'); 
131            }); 
132 
133            link.addEventListener('mouseout', function (event) { 
134                // Rimuovi la classe "hover" quando l'elemento non è più passato sopra 
135                this.classList.remove('hover'); 
136            }); 
137        }); 
138  //  }); 
139</script> 
140 
141 
142 
143<#function getCategoriesOfArticle> 
144<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
145<#assign articleId=.vars['reserved-article-id'].getData()/> 
146<#assign groupId = themeDisplay.getScopeGroupId()/> 
147<#assign article = journalArticleLocalService.getArticle(groupId,articleId)/> 
148<#assign assetCategoryLocalService = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]/> 
149<#assign resourcePrimaryKey=article.getResourcePrimKey()/> 
150<#assign categories = assetCategoryLocalService.getCategoryNames("com.liferay.journal.model.JournalArticle",resourcePrimaryKey)/> 
151<#return categories/> 
152</#function>