Can't get a category property at FTLCan't get a category property at FTLhttps://liferay.dev/en/c/message_boards/find_thread?p_l_id=119785333&threadId=1212211962024-03-29T07:16:58Z2024-03-29T07:16:58ZRE: Can't get a category property at FTLMohammed Yasinhttps://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=1212608402021-11-25T07:50:18Z2021-11-25T07:48:46Z<p>Hi ,</p>
<p>You can try using below code for fetching the AssetCategoryProperty.</p>
<pre>
<code class="language-html"><#assign
assetCategoryPropService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService")
catPropValue = assetCategoryPropService.getCategoryProperty(categoryId,"propertyName")
/>
${catPropValue.getValue()}</code></pre>
<p> </p>Mohammed Yasin2021-11-25T07:48:46ZCan't get a category property at FTLKarmel Idarragahttps://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=1212211952021-10-28T09:11:22Z2021-10-28T06:31:16Z<p>Hi all!! </p>
<p>I have an Freemarker category navigation template which needs no get
a category custom property. My code was working until er hace upgrade
from Liferay 7.3 CE GA6 to Liferay 7.3 GA8.</p>
<p>Now we are getting the following error:</p>
<p>com.sun.proxy.$Proxy1796 cannot be cast to com.liferay.asset.category.property.model.AssetCategoryProperty.</p>
<p>At GA6 we have the following ftl working:</p>
<pre>
<code class="language-javascript"><#assign assetCategory = serviceLocator.findService("com.liferay.asset.category.property.service.impl.AssetCategoryPropertyLocalServiceImpl")>
<#assign assetCategoryNuevo = serviceLocator.findService("com.liferay.portlet.asset.service.impl.AssetCategoryPropertyServiceImpl")>
<#assign images_folder = themeDisplay.getPathThemeImages()>
<#if entries?has_content>
<div class="container my-5">
<h2 class="mb-5"><@liferay.language key="DOG-ADT-catalogo-opendata-header"/></h2>
<#list entries as curVocabulary>
<#assign categories = curVocabulary.getCategories() />
<#if categories?has_content>
<@displayCategories categories=categories />
</#if>
</#list>
</div>
</#if>
<#macro displayCategories
categories
>
<#if categories?has_content>
<div class="row">
<#list categories as category>
<#assign key = category.getCategoryId()>
<#assign valorPropiedad = assetCategoryNuevo.getCategoryProperty(key,"image")>
<a href="${categoryURL}${key}" class="ficha-categoria">
<img src="${images_folder}/opendata/${valorPropiedad.getValue()}" >
<p>${category.getTitle(locale)}</p>
</a>
</#list>
</div>
</#if>
</#macro></code></pre>
<p>When the upgrade was done, we get an error because the service was
removed (or changed the location), so we changed it to use the following:</p>
<blockquote>
<p><#assign assetCategoryKernel = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryPropertyLocalService")></p></blockquote>
<p>But now we are getting the following error:</p>
<blockquote>
<p>Caused by: java.lang.ClassCastException: com.sun.proxy.$Proxy1796
cannot be cast to
com.liferay.asset.category.property.model.AssetCategoryProperty<br />
at
com.liferay.portal.template.freemarker.internal.RestrictedLiferayObjectWrapper.wrap(RestrictedLiferayObjectWrapper.java:229)<br />
at
freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:1509)<br />
at
freemarker.ext.beans.ReflectionCallableMemberDescriptor.invokeMethod(ReflectionCallableMemberDescriptor.java:56)<br />
at
freemarker.ext.beans.MemberAndArguments.invokeMethod(MemberAndArguments.java:51)<br />
at
freemarker.ext.beans.OverloadedMethodsModel.exec(OverloadedMethodsModel.java:61)<br />
... 278 more<br /> </p></blockquote>
<p> </p>
<p>C