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} 

AjaxQuote Portlet
DXP App
Data Modeling, Process & Business Logic
18410304
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
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
SHARE LINK
Copy & Share

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.