Virhe tapahtui prosessoidessa esitysmallia.
The following has evaluated to null or missing:
==> channel.items [in template "3192443#3192485#null" at line 8, column 30]
----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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 channelId = channel.items[0].id [in template "3192443#3192485#null" at line 8, column 9]
----
1<#if themeDisplay?has_content>
2 <#assign scopeGroupId = themeDisplay.getScopeGroupId() />
3</#if>
4
5<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") />
6
7<#if channel?has_content>
8 <#assign channelId = channel.items[0].id />
9</#if>
10
11<#if (CPDefinition_cProductId.getData())??>
12 <#assign productId = CPDefinition_cProductId.getData() />
13</#if>
14
15<#assign
16 product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&images.accountId=-1&nestedFields=images")
17 productImage = product.images?filter(item -> item.tags?seq_contains("app icon"))![]
18/>
19
20<#if productImage?has_content>
21 <#assign productThumbnail = productImage[0].src?split("/o") />
22 <#if productThumbnail?has_content && productThumbnail?size gte 2>
23 <#assign productThumbnail1 = "/o/${productThumbnail[1]}"!"" />
24 <#else>
25 <#assign productThumbnail1 = "/o/commerce-media/default/?groupId=${scopeGroupId}" />
26 </#if>
27<#else>
28 <#if product.urlImage?has_content>
29 <#assign productThumbnail = product.urlImage?split("/o") />
30 <#if productThumbnail?has_content && productThumbnail?size gte 2>
31 <#assign productThumbnail1 = "/o/${productThumbnail[1]}"!"" />
32 <#else>
33 <#assign productThumbnail1 = "/o/commerce-media/default/?groupId=${scopeGroupId}" />
34 </#if>
35 <#else>
36 <#assign productThumbnail1 = "/o/commerce-media/default/?groupId=${scopeGroupId}" />
37 </#if>
38</#if>
39
40${productThumbnail1}
The following has evaluated to null or missing: ==> channel.items [in template "3192443#3192485#null" at line 8, column 30] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- 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 channelId = channel.items[0].id [in template "3192443#3192485#null" at line 8, column 9] ----
1<#if themeDisplay?has_content>
2 <#assign scopeGroupId = themeDisplay.getScopeGroupId() />
3</#if>
4
5<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") />
6
7<#if channel?has_content>
8 <#assign channelId = channel.items[0].id />
9</#if>
10
11<#if (CPDefinition_cProductId.getData())??>
12 <#assign productId = CPDefinition_cProductId.getData() />
13</#if>
14
15<#assign
16 product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&images.accountId=-1&nestedFields=images")
17 productImage = product.images?filter(item -> item.tags?seq_contains("app icon"))![]
18/>
19
20<#if productImage?has_content>
21 <#assign productThumbnail = productImage[0].src?split("/o") />
22 <#if productThumbnail?has_content && productThumbnail?size gte 2>
23 <#assign productThumbnail1 = "/o/${productThumbnail[1]}"!"" />
24 <#else>
25 <#assign productThumbnail1 = "/o/commerce-media/default/?groupId=${scopeGroupId}" />
26 </#if>
27<#else>
28 <#if product.urlImage?has_content>
29 <#assign productThumbnail = product.urlImage?split("/o") />
30 <#if productThumbnail?has_content && productThumbnail?size gte 2>
31 <#assign productThumbnail1 = "/o/${productThumbnail[1]}"!"" />
32 <#else>
33 <#assign productThumbnail1 = "/o/commerce-media/default/?groupId=${scopeGroupId}" />
34 </#if>
35 <#else>
36 <#assign productThumbnail1 = "/o/commerce-media/default/?groupId=${scopeGroupId}" />
37 </#if>
38</#if>
39
40${productThumbnail1}
AjaxQuote Portlet
DXP App
Real-time market quote data is streamed to one or more portlets on the
page by Ajax and JavaScript technology. Watch the tickers move in
real-time on the screen (with no stress on the back-end; all client side services).
Features:
Quote data is updated on the page in real-time
Support for anonymous and personalized portlets (logged-in and non-logged-in home screens)
Multiple instances of portlets on the same page (different portfolio sets)
Installation (for vanilla LifeRay 6.1 CE GA2 tomcat bundle):
1. Update tomcat Context.xml to indicate a JNDI datasource called "jdbc/openfeedaq"
2. Create tables for OPENFEEDAQ schema (tested with MySQL and MSSQL Server"
3. Deploy "ajaxquote-portlet-0.0.9.5.war"
4. Due to the issue (LPS-29103) with the deployment manager in LifeRay 6.1 CE GA2 the app deployment will fail (Spring contextListener position)
5 Stop the LifeRay server and edit the C:\liferay-portal-6.1.1-ce-ga2\tomcat-7.0.27\webapps\ajaxquote-portlet-0.0.9.5\WEB-INF\web.xml; moving the "org.springframework.web.context.ContextLoaderListener" to the top the web.xml
6. Restart the server and proceed to add unlimited amount of AjaxQuote Portlets to logged-in and anonymous pages.
Instructions and Examples of the Tomcat Context.xml and JBOSS datasource modules, source code and build scripts are all located on GitHub:
https://github.com/openfeed/AjaxQuotePortlet
Quality:
This app has been tested end to end on LifeRay Portal 6.1 CE GA2 Tomcat and JBOSS bundles. This app boots and works on LifeRay 6.1 Beta 1 (see screenshots). Due to a bug in JBOSS and MySQL requiring the MySQL dialect declared in the persistence unit we are required to make a specific build using the following--mvn clean install -P jpa20,mysql
Features:
Quote data is updated on the page in real-time
Support for anonymous and personalized portlets (logged-in and non-logged-in home screens)
Multiple instances of portlets on the same page (different portfolio sets)
Installation (for vanilla LifeRay 6.1 CE GA2 tomcat bundle):
1. Update tomcat Context.xml to indicate a JNDI datasource called "jdbc/openfeedaq"
2. Create tables for OPENFEEDAQ schema (tested with MySQL and MSSQL Server"
3. Deploy "ajaxquote-portlet-0.0.9.5.war"
4. Due to the issue (LPS-29103) with the deployment manager in LifeRay 6.1 CE GA2 the app deployment will fail (Spring contextListener position)
5 Stop the LifeRay server and edit the C:\liferay-portal-6.1.1-ce-ga2\tomcat-7.0.27\webapps\ajaxquote-portlet-0.0.9.5\WEB-INF\web.xml; moving the "org.springframework.web.context.ContextLoaderListener" to the top the web.xml
6. Restart the server and proceed to add unlimited amount of AjaxQuote Portlets to logged-in and anonymous pages.
Instructions and Examples of the Tomcat Context.xml and JBOSS datasource modules, source code and build scripts are all located on GitHub:
https://github.com/openfeed/AjaxQuotePortlet
Quality:
This app has been tested end to end on LifeRay Portal 6.1 CE GA2 Tomcat and JBOSS bundles. This app boots and works on LifeRay 6.1 Beta 1 (see screenshots). Due to a bug in JBOSS and MySQL requiring the MySQL dialect declared in the persistence unit we are required to make a specific build using the following--mvn clean install -P jpa20,mysql
DEVELOPER
DEVELOPER
29.8.2013 0:00
Published date
29.8.2013 0:00
Published Date
29.8.2013 0:00
SUPPORTED OFFERINGS
Liferay PaaS
Supported Versions
Resource Requirements
Edition
CE
PRICE
Free
help & support
HTML Example
A paragraph is a self-contained unit of a discourse in writing dealing with a particular point or idea. Paragraphs are usually an expected part of formal writing, used to organize longer prose.