Fehler bei der Verarbeitung der Vorlage.
Java method "it.dvel.rcf.profile.integration.model.impl.ProductImpl.getLineTitle(Locale)" threw an exception when invoked on it.dvel.rcf.profile.integration.model.impl.ProductImpl object "{uuid=5d667f83-5604-4d7a-e40f-7810fca24520, productId=426, companyId=20101, groupId=20128, userId=20130, userName=Eighty Twenty, createDate=2021-11-02 15:17:57.0, modifiedDate=2024-09-04 15:26:55.555, code=STP0119, productTypeName=Active Speakers, name=TT 051-A, nameSearchable=TT051A, urlTitle=tt-051-a, subtitle=<?xml version='1.0' encoding='UTF-8'?><root available-locales=\"en_US,it_IT,es_ES,fr_FR,de_DE\" default-locale=\"en_US\"><Subtitle language-id=\"en_US\">ACTIVE ULTRA COMPACT WIDE DISPERSION SPEAKER</Subtitle><Subtitle language-id=\"de_DE\">ULTRAKOMPAKTE AKTIVBOX MIT GROSSER ABDECKUNG</Subtitle><Subtitle language-id=\"es_ES\">CAJA ACÚSTICA ACTIVA ULTRA COMPACTA DE DISPERSIÓN ANCHA</Subtitle><Subtitle language-id=\"fr_FR\">ENCEINTE ACTIVE ULTRA COMPACTE À DISPERSION LARGE</Subtitle><Subtitle language-id=\"it_IT\">DIFFUSORE ATTIVO AD AMPIA DISPERSIONE ULTRACOMPATTO</Subtitle></root>, description=<?xml version='1.0' encoding='UTF-8'?><root available-locales=\"en_US,it_IT,es_ES,fr_FR,de_DE\" default-locale=\"en_US\"><Description language-id=\"en_US\">The TT051-A is an ultra compact, active loudspeaker designed specifically for high quality indoor nearfield sound amplification. &#xd;\nIt is equipped with a 300 W digital amplifier, 150 W for the low frequencies and 150 W for the high frequencies. A powerful 5” neodymium woofer and a 1” aluminium dome tweeter loaded to a wide dispersion constant directivity horn provide an extensive coverage.</Description><Description language-id=\"de_DE\">Die TT 051-A ist eine ultrakompakte Aktivbox, die speziell für die qualitativ hochwertige Nahfeld-Beschallung in Innenräumen entwickelt wurde.&#xd;\nDie integrierte Endstufe bietet eine Gesamtleistung von 300 Watt: 150 Watt für den Bassbereich und 150 Watt für die Höhen. Ein leistungsstarker 5-Zoll-Neodym-Tieftöner und ein 1-Zoll-Titan-Kalottenhochtöner auf einem Constant-Directivity-Horn mit weitem Abstrahlwinkel bieten eine große Abdeckung.</Description><Description language-id=\"es_ES\">La TT051-A es una caja acústica activa ultra-compacta diseñada específicamente para refuerzo sonoro de campo cercano con alta calidad en interiores. Dispone de una amplificador digital de 300W, 150 W para los bajos y 150W para los agudos. Un potente altavoz de bajos de 5” con imán de neodimio y una unidad de agudos con cúpula de aluminio de 1” acoplado a una trompeta de directividad constante y ancha, proporcionan una cobertura extensa.</Description><Description language-id=\"fr_FR\">Le TT051-A est une enceinte active ultra compacte conçue spécialement pour la diffusion de proximité indoor de haute qualité. Elle dispose d'un étage de puissance numérique de 300 watts, dont 150 watts pour le bas du spectre et 150 watts pour les hautes fréquences. Un puissant woofer 5\" avec aimant néodyme et un tweeter à dôme en titane 1\" monté dans un pavillon à dispersion large et à directivité constante assurent une couverture sonore étendue.</Description><Description language-id=\"it_IT\">l TT051-A è un diffusore attivo ultracompatto pensato specificatamente per un'amplificazione del suono di alta qualità in interni. &#xd;\nÈ dotato di un amplificatore digitale da 300 W, 150 W per le frequenze basse e 150 W per le frequenze alte. Un potente woofer al neodimio da 5” e un tweeter a cupola in titanio da 1” caricato su una tromba ad ampia dispersione e ad orientamento costante garantiscono una copertura elevata.</Description></root>, type=PRODOTTO, accessoryTypeCode=, publication=RCF, ratio=100, readMoreURL=, youTubeVideos=, youTubeURL=, active=true}"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${relatedProduct.getLineTitle(locale)}  [in template "20101#20128#819037" at line 171, column 73]
----
1<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
2<#assign journalArticleId = .vars['reserved-article-id'].data> 
3<#assign journalArticleResourceLocalServiceUtil = staticUtil["com.liferay.journal.service.JournalArticleResourceLocalServiceUtil"]> 
4<#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]> 
5<#assign articleResourcePK = journalArticleResourceLocalServiceUtil.getArticleResourcePrimKey(groupId, journalArticleId)/> 
6<#assign categoryList=assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle",articleResourcePK) > 
7<#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
8<#assign parentLayout = LayoutLocalService.getLayout(layout.getAncestorPlid()) /> 
9<#assign parentLayoutUrl = parentLayout.getFriendlyURL(locale) /> 
10<#assign journalArticle = journalArticleLocalService.getLatestArticle(scopeGroupId, journalArticleId) /> 
11<#assign relatedArticles = rcfTemplateHelper.getRelatedAssets(journalArticle, 'com.liferay.journal.model.JournalArticle', 'News Liferay 6.2') /> 
12<#assign relatedProducts = rcfTemplateHelper.getRelatedAssets(journalArticle, 'it.dvel.rcf.profile.integration.model.Product', '') /> 
13 
14<div class="news-detail"> 
15	<div class="bg-white pb-5"> 
16		<div class="py-4 px-2 bg-lighter mb-7 to-back"> 
17			<div class="container-fluid container-fluid-max-xl"> 
18				<a href="javascript: window.history.back();" class="d-flex align-items-center"> 
19					<i class="icon-arrow-right-custom"></i> 
20					<span class="pl-3"><@liferay.language key="back" /></span> 
21				</a> 
22			</div> 
23		</div> 
24		<div class="container-fluid container-fluid-max-xl px-4"> 
25			<div class="mb-2"> 
26				<span class="font-weight-medium category mr-3"> 
27					<#list categoryList as category> 
28						<span class="pr-3">${category.getName()}</span> 
29					</#list> 
30				</span> 
31				<span class="date"> 
32					<#setting time_zone = languageUtil.get(locale, "template-timezone") />  
33					<#assign originalLocale = locale />  
34					<#setting locale = localeUtil.getDefault() /> 
35					<#assign displaydate = .vars['reserved-article-display-date'].data> 
36					<#assign displaydate = displaydate?datetime("EEE, d MMM yyyy HH:mm:ss Z")> 
37					<#setting locale = originalLocale />  
38					${displaydate?string["dd MMM yyyy"]} 
39				</span> 
40			</div> 
41			 
42			<#if (FieldsGroup52652497.Text78515013.getData())??> 
43				<h1 class="mb-4 font-family-narrow-normal px-0">${FieldsGroup52652497.Text78515013.getData()}</h1> 
44			</#if> 
45			 
46			<#if FieldsGroup52652497.Upload45315688.getSiblings()?has_content> 
47				<div class="mb-6"> 
48					<div class="owl-carousel owl-theme" id="owl-carousel-hp"> 
49						<#list FieldsGroup52652497.Upload45315688.getSiblings() as cur_FieldsGroup52652497_Upload45315688> 
50							<div class="slide d-flex align-items-center justify-content-center" style="background-image:url(${cur_FieldsGroup52652497_Upload45315688.getData()})"> 
51							</div> 
52						</#list> 
53					</div> 
54				</div> 
55				<div class="d-none"> 
56					<#list FieldsGroup52652497.Upload45315688.getSiblings() as cur_FieldsGroup52652497_Upload45315688> 
57							<img src="${cur_FieldsGroup52652497_Upload45315688.getData()}" /> 
58						</#list> 
59				</div> 
60			</#if> 
61			 
62			 
63			<div class="d-md-flex align-items-center justify-content-between mb-md-9 mb-5"> 
64				<div class="social h6 mb-0 py-2 pl-2 mb-3 mb-md-0"> 
65					<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
66					<a href="http://www.linkedin.com/shareArticle?mini=true&url=${currentUrl}&title=${FieldsGroup52652497.Text78515013.getData()}" class="px-2" target="_blank"> 
67						<i class="icon-linkedin-custom px-1"></i> 
68					</a> 
69					<a href="https://www.facebook.com/sharer/sharer.php?u=${currentUrl}" class="px-2" target="_blank"> 
70						<i class="icon-facebook-custom px-1"></i> 
71					</a> 
72					<a href="https://twitter.com/intent/tweet?url=${currentUrl}" class="px-2" target="_blank"> 
73						<i class="icon-twitter-custom px-1"></i> 
74					</a> 
75				</div> 
76			</div> 
77		</div> 
78		<div class="container-fluid container-fluid-max-xl px-md-7 px-lg-9 px-4"> 
79			<#if FieldsGroup52652497.FieldsGroup95339333.getSiblings()?has_content> 
80				<#list FieldsGroup52652497.FieldsGroup95339333.getSiblings() as node> 
81					<div class="mb-md-7 mb-4"> 
82						<#if (FieldsGroup52652497.FieldsGroup95339333.Text94801507.getData())??> 
83							<h6 class="mb-md-6 mb-4">${node.Text94801507.getData()}</h6> 
84						</#if> 
85						<#if (node.RichText63313118.getData())??> 
86							<div class="mb-md-7 mb-4 paragraph font-family-narrow-normal"> 
87								${node.RichText63313118.getData()} 
88							</div> 
89						</#if> 
90						<#if (node.RichText45781737.getData())??> 
91							<div class="row mb-md-7 mb-4"> 
92								<#if (node.Image42436245.getData())?? && node.Image42436245.getData() != ""> 
93									<div class="col-md-8 mb-4 mb-md-0"> 
94										<img alt="${node.Image42436245.getAttribute("alt")}" data-fileentryid="${node.Image42436245.getAttribute("fileEntryId")}" src="${node.Image42436245.getData()}" class="w-100"/> 
95									</div> 
96									<#if (node.RichText45781737.getData())?? && node.RichText45781737.getData() != ""> 
97										<div class="col-md-4 font-family-narrow-normal"> 
98											${node.RichText45781737.getData()} 
99										</div> 
100									</#if> 
101								<#else> 
102									<#if (node.RichText45781737.getData())?? && node.RichText45781737.getData() != ""> 
103										<div class="col-md-12 font-family-narrow-normal"> 
104											${node.RichText45781737.getData()} 
105										</div> 
106									</#if> 
107								</#if> 
108							</div> 
109						</#if> 
110						<#if (node.Text34883111.getData())?? && node.Text34883111.getData() != ""> 
111							<div class="blockquote font-family-narrow-normal position-relative mb-7"> 
112								${node.Text34883111.getData()} 
113							</div> 
114						</#if> 
115					</div> 
116				</#list> 
117			</#if> 
118			<#if FieldsGroup52652497.FieldsGroup17972647.getData() !=''> 
119				<div class="mb-md-7 mb-4"> 
120					<#list FieldsGroup52652497.FieldsGroup17972647.getSiblings() as node> 
121						<div class="mb-2"> 
122							<#if (node.Text21652173.getData())??> 
123								<a target="_blank" href="${node.Text21652173.getData()}" class="d-flex align-items-center font-family-narrow-normal"> 
124									<i class="icon-download-custom mr-3 h5 font-weight-normal mb-0"></i> 
125									<#if node.Text31160069.getData() !=''> 
126										${node.Text31160069.getData()} 
127									<#else> 
128										<@liferay.language key="download" /> 
129									</#if> 
130								</a> 
131							</#if> 
132						</div> 
133					</#list> 
134				</div> 
135			</#if>	 
136		</div> 
137	</div> 
138	 
139	<#if relatedProducts?has_content> 
140	<div class="bg-lighter"> 
141	<div class="container-fluid container-fluid-max-xl pt-7 pb-8 px-4"> 
142			<h5 class="font-weight-normal mb-5 text-center secondary"><@liferay.language key="related-products" /></h5> 
143			<div class="owl-carousel owl-theme" id="owl-carousel-rel-prod"> 
144				<#list relatedProducts as relatedProduct> 
145				<#assign productFeatures = relatedProduct.getProductFeatures(true) /> 
146				<#assign productBadges2 = relatedProduct.getBadges(2) /> 
147				<#assign productBadges1 = relatedProduct.getBadges(1) /> 
148				 
149					<div class="related-news related-prod mb-4 mb-md-0 h-100"> 
150						<div class="bg-white h-100 p-5 position-relative rounded-sm d-flex flex-column"> 
151							<#if productBadges2?has_content> 
152								<#assign productStatusStyle = productBadges2[0].getBackColor() /> 
153								<div class="status px-4 mb-5 pt-3" style="border-color:${productStatusStyle}!important"> 
154									<#list productBadges2 as productBadge2> 
155										<div class="border-0 badge" style="color: ${productBadge2.getBackColor()}">${productBadge2.getCode()}</div> 
156									</#list> 
157								</div> 
158							</#if> 
159							<div class="image d-flex align-items-end mb-5">							 
160								<a data-senna-off="true" href="${portal.getLayoutFullURL(relatedProduct.getFirstAvailableLayout(rcfCurrentPublication), themeDisplay)}" class="d-flex align-items-center justify-content-center"> 
161									<img src="${relatedProduct.getFirstAvailableCoverImageURL(rcfCurrentPublication, themeDisplay)}" class="w-100" /> 
162								</a> 
163							</div> 
164							<div class="status normal mb-4 pt-3"> 
165									<#list productBadges1 as productBadge1> 
166										<div class="border-0 badge" style="background-color: ${productBadge1.getBackColor()}; color: ${productBadge1.getFontColor()};">${productBadge1.getCode()}</div> 
167									</#list> 
168							</div> 
169							<div class="mb-4"> 
170								<div class="meta font-weight-medium underline mb-3"> 
171									${relatedProduct.getLineTitle(locale)} 
172								</div> 
173								<h4 class="font-weight-medium mb-3 text-uppercase">${relatedProduct.name}</h4> 
174								<p class="mb-3 font-weight-medium text-uppercase">${relatedProduct.getSubtitle(locale)}</p> 
175								<small class="mb-3 font-family-narrow-normal d-block"> 
176									<ul class="mb-5 font-family-narrow-normal px-0"> 
177										<#list productFeatures as productFeature> 
178											<li>${productFeature.getTitle(locale)} 
179										</#list> 
180									</ul> 
181								</small> 
182							</div> 
183							<div class="mt-auto"> 
184								<#if relatedProduct.hasLayout(rcfCurrentPublication)> 
185									<a data-senna-off="true" href="${portal.getLayoutFullURL(relatedProduct.getFirstAvailableLayout(rcfCurrentPublication), themeDisplay)}" class="btn btn-link-normal"> 
186										<@liferay.language key="learn-more" /> 
187									</a> 
188								</#if> 
189							</div> 
190							</div> 
191					</div> 
192				</#list> 
193			</div> 
194		</div> 
195		</div> 
196		</#if> 
197 
198	<#if relatedArticles?has_content> 
199		<div class="container-fluid container-fluid-max-xl pt-8 pb-4 px-4"> 
200			<h5 class="font-weight-normal mb-5 text-center"><@liferay.language key="other" /> <@liferay.language key="news" /></h5> 
201			<div class="row pt-7"> 
202				<#list relatedArticles as relatedArticle> 
203						<#assign categoryListEntry=assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle",relatedArticle.resourcePrimKey) > 
204						<#assign imageURL = rcfTemplateHelper.getJournalArticleField(relatedArticle, locale, 'FieldsGroup52652497.Upload45315688', 'url') /> 
205						<#assign title = rcfTemplateHelper.getJournalArticleField(relatedArticle, locale, 'FieldsGroup52652497.Text78515013') /> 
206						<#assign entryTitle = relatedArticle.getTitle(locale) /> 
207						<#if validator.isNull(title)>  
208							<#assign title = entryTitle />  
209						</#if>  
210						<#assign summary = relatedArticle.getDescription(locale) /> 
211						<#assign text = rcfTemplateHelper.getJournalArticleField(relatedArticle, locale, 'FieldsGroup52652497.FieldsGroup95339333.RichText63313118') /> 
212						<#if validator.isNull(summary)>  
213							<#assign summary = text />  
214						</#if>  
215						<div class="col-md-6 related-news mb-5"> 
216							<div class="bg-white h-100"> 
217								<div class="image bg-secondary" style="background-image:url(${imageURL})"> 
218								</div> 
219								<div class="p-5 pb-8"> 
220									<div class="meta"> 
221												<span class="font-weight-medium pr-3 text-uppercase"> 
222													<#list categoryListEntry as category> 
223														${category.getName()} 
224													</#list> 
225												</span> 
226												<span> 
227														${relatedArticle.createDate?string["dd MMM yyyy"]} 
228												</span> 
229									</div> 
230									<h6 class="font-weight-medium mb-3"> 
231										${title} 
232									</h6> 
233									<small class="mb-5 font-family-narrow-normal d-block">${stringUtil.shorten(htmlUtil.stripHtml(summary), 250)}</small> 
234									<a href="/-/${relatedArticle.urlTitle}" class="btn btn-link-normal"> 
235										<@liferay.language key="learn-more" /> 
236									</a> 
237								</div> 
238							</div> 
239						</div> 
240				</#list> 
241			</div> 
242		</div> 
243	</#if> 
244</div> 
245<script> 
246	var owl = $("#owl-carousel-hp").owlCarousel({ 
247		loop:true, 
248    nav:false, 
249		dots:true, 
250		items:1 
251	}); 
252	$("#owl-carousel-rel-prod").owlCarousel({ 
253	    margin:20, 
254	    nav:false, 
255			dots:true, 
256			items:3, 
257			responsive : { 
258				0 : { 
259						items:1 
260				}, 
261				768 : { 
262						items:2 
263				}, 
264				1000 : { 
265						items:3 
266
267
268	}); 
269</script> 
270<style> 
271 
272	@media only screen and (min-width: 600px) and (max-width: 768px){ 
273		.news-detail #owl-carousel-hp .slide { 
274			height:400px 
275
276
277	@media only screen and (max-width: 600px){ 
278		.news-detail #owl-carousel-hp .slide { 
279			height:200px 
280
281
282</style> 
Pulsante Torna su con Immagine
...
Torna su
Follow us on
Icone allineate
Linkedin Facebook X Youtube Instagram Spotufy