null MTK esitys 1: Vaikuttavat panostukset biotalouden TKI-toimintaan
Virhe tapahtui prosessoidessa esitysmallia.
Java method "com.sun.proxy.$Proxy662.getLatestArticle(long)" threw an exception when invoked on com.sun.proxy.$Proxy662 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@183427e5"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #local relatedArticle = JournalArticl...  [in template "43867" in macro "getWebContentHTML" at line 269, column 9]
	- Reached through: @ch5.getWebContentHTML main_author  [in template "20116#20152#45323" at line 153, column 33]
----
1<#-- Artikkeli --> 
2<#-- 04/04/2019--> 
3<#-- INIT --> 
4<#assign dlAppServiceUtil = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService") /> 
5<#-- Import common variables, functions & macros --> 
6<#import "${templatesPath}/43867" as ch5> 
7 
8<#assign title = ch5.getTitle() /> 
9<#assign summary = ch5.getSummary()/> 
10<#assign date = ch5.getDisplayDate()/> 
11<#assign contentType = ch5.getStructureName() /> 
12<#assign membersOnly = extra.getSiblings()!""> 
13<#assign youtubeURL = video.source.youtubeURL.getData() > 
14<#assign dreambrokerURL = video.source.dreambrokerURL.getData() > 
15<#assign caption = video.videoCaption.getData() > 
16<#assign bodyText = body.getData() /> 
17<#assign attachments = attachment.getSiblings()!""> 
18<#-- Get article type category from a specific vocabulary. User can select multiple categories from the UI, but only one is shown to the user -> output only the first selected category. --> 
19<#assign articleTypeList = ch5.getCategoryNames(articleTypeVocabularyId) /> 
20<#assign articleType = articleTypeList?first!"" /> 
21<script > 
22    ( function() { var youtube = document.querySelectorAll( ".youtube" ); for (var i = 0; i < youtube.length; i++) { var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; var image = new Image(); image.src = source; image.addEventListener( "load", function() { youtube[ i ].appendChild( image ); }( i ) ); youtube[i].addEventListener( "click", function() { var iframe = document.createElement( "iframe" ); iframe.setAttribute( "frameborder", "0" ); iframe.setAttribute( "allowfullscreen", "" ); iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); this.innerHTML = ""; this.appendChild( iframe ); } ); }; } )(); 
23</script> 
24<#--------------- doby trigger ---------------> 
25<#if Tekstilaatikkohfrr.getSiblings()?has_content> 
26    <#list Tekstilaatikkohfrr.getSiblings() as nbox> 
27        <#assign nostolaatikko = ''> 
28        <#assign nostolaatikko += '<div class="card nostokortti" ><div><h5 class="card-title nostokorttiotsikko">${nbox.getData()}</h5></div> '> 
29        <#if nbox.Tekstilaatikko7cq1.getSiblings()?has_content> 
30            <#assign nostolaatikko += '<div class="card-body"> <div class="container"> '> 
31            <#list nbox.Tekstilaatikko7cq1.getSiblings() as row> 
32                <#assign nostolaatikko += ' 
33                    <div class="row nostokorttirivi"> 
34                        <div class="col-sm"> 
35                            <h5 class="nostokorttirivitextarvo font-weight-bold">${row.getData()}</h5> 
36                            <p class="nostokorttirivitextarvo">${row.Tekstilaatikkob7rx.getData()}</p> 
37                        </div> 
38                        <div class="col-sm"> 
39                            <div class="nostokorttiriviicon"> 
40                                <div class="nostokorttiriviiconkehys"> 
41                                    <i class="${row.Tekstilaatikko61hk.getData()}" style="color: ${row.Tekstilaatikko61hk.Vri980u.getData()};"></i> 
42                                </div> 
43                                <div class="nostokorttirivitext"> 
44                                    <p class="nostokorttirivitextnum" style="color: ${row.Tekstilaatikko61hk.Vri980u.getData()};">${row.Tekstilaatikko61hk.Tekstilaatikko356z.getData()}</p> 
45                                    <p>${row.Tekstilaatikko61hk.Tekstilaatikkofbiq.getData()}</p> 
46                                </div> 
47                            </div> 
48                        </div> 
49                        <div class="col-sm"> 
50                            <div class="nostokorttiriviicon"> 
51                                <div class="nostokorttiriviiconkehys"> 
52                                    <i class="${row.Tekstilaatikkoj1w6.getData()}" style="color: ${row.Tekstilaatikkoj1w6.Vri2xek.getData()};"></i> 
53                                </div> 
54                                <div class="nostokorttirivitext"> 
55                                    <p class="nostokorttirivitextnum" style="color: ${row.Tekstilaatikkoj1w6.Vri2xek.getData()};">${row.Tekstilaatikkoj1w6.Tekstilaatikkobp7i.getData()}</p> 
56                                    <p>${row.Tekstilaatikkoj1w6.Tekstilaatikkohnae.getData()}</p> 
57                                </div> 
58                            </div> 
59                        </div> 
60                    </div> 
61                '> 
62            </#list> 
63            <#assign nostolaatikko += '</div></div>'> 
64        </#if> 
65        <#assign nostolaatikko += '</div>'> 
66        <#assign bodyText = "${bodyText?replace('[[info]]', nostolaatikko, 'f')}"> 
67    </#list> 
68</#if> 
69<#assign bodyText = "${bodyText?replace('[[info]]', '')}"> 
70    <#if Tekstilaatikkoj4bk.getSiblings()?has_content> 
71        <#list Tekstilaatikkoj4bk.getSiblings() as cur_Tekstilaatikkoj4bk> 
72            <#assign Lainausnoste = ' 
73                <div class="container" style="margin-left: 18px;"> 
74                    <div class="mtkartikkeliLainausnostetext">  
75                        <div class="sitaattiteksti">${cur_Tekstilaatikkoj4bk.getData()} </div> 
76                    </div> 
77                </div> 
78            '> 
79            <#assign bodyText = "${bodyText?replace('[[lainaus]]', Lainausnoste, 'f')}"> 
80        </#list> 
81    </#if> 
82    <#assign bodyText = "${bodyText?replace('[[lainaus]]', '')}"> 
83    <#if Teksti3wcx.getSiblings()?has_content> 
84        <#list Teksti3wcx.getSiblings() as cur_Teksti3wcx> 
85            <#assign nostolaatikkohtml = ' 
86                <div class="card nostokortti" > 
87                    <div> 
88                        <h5 class="card-title nostokorttiotsikko">${cur_Teksti3wcx.getData()}</h5> 
89                    </div> 
90                    <div class="card-body"> 
91                        <div class="container">${cur_Teksti3wcx.HTML3qzk.getData()}</div> 
92                    </div> 
93                </div> 
94            '> 
95            <#assign bodyText = "${bodyText?replace('[[nosto]]', nostolaatikkohtml, 'f')}"> 
96        </#list> 
97         
98    </#if> 
99<#assign bodyText = "${bodyText?replace('[[nosto]]', '')}"> 
100<#--------------- OUTPUT ---------------> 
101<div class="container" style=""> 
102    <div class="row"> 
103        <div class="col"> 
104 
105            <#if articleType?has_content> 
106                <p>${contentType} – ${articleType}</p> 
107            <#else> 
108                <p>${contentType}</p> 
109            </#if> 
110 
111            <h1>${title}</h1> 
112            <#if main_author?? && main_author?has_content> 
113                <p class="text-muted">${date}</p> 
114            <#else> 
115                <p class="text-muted">${date} ${author.getData()}</p> 
116            </#if> 
117            <#if summary?has_content> 
118                <div class="font-weight-light article-intro">${htmlUtil.render(summary)}</div> 
119            </#if> 
120        </div> 
121        <div class="col-1"> 
122 
123        </div> 
124    </div> 
125    <div class="row"> 
126        <div class="col-11" > 
127            <#if youtubeURL?? && youtubeURL != ""> 
128                ${ch5.getVideoEmbed(youtubeURL, caption)} 
129            <#elseif dreambrokerURL?? && dreambrokerURL != ""> 
130                ${ch5.getVideoEmbed(dreambrokerURL, caption)} 
131            <#elseif image.getData()?? && image.getData() != ""> 
132                   <@ch5.getadatiivinemediaimage image /> 
133            </#if> 
134        </div> 
135        <div  style="" class="col-11 col-md-1"> 
136            <#assign GroupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")> 
137            <#assign mtkpaagroup = GroupLocalService.fetchGroup(groupId) > 
138            <div class="artikkelisomelista"> 
139                <ul class="list-unstyled " style="height: 0;"> 
140                    <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://${mtkpaagroup.getPublicLayoutSet().getVirtualHostname()}/-/${.vars['reserved-article-url-title'].data}" target="_blank" class="fab fa-facebook-f fimtkteemaartikkelilistasosiaalinenmedia fimtkteemaartikkelilistasosiaalinenmediafacebook ml-3  mt-0" ></a></li> 
141                    <li><a href="https://twitter.com/intent/tweet?url=https://${mtkpaagroup.getPublicLayoutSet().getVirtualHostname()}/-/${.vars['reserved-article-url-title'].data}" target="_blank" class="fab fa-twitter fimtkteemaartikkelilistasosiaalinenmedia fimtkteemaartikkelilistasosiaalinenmediatwitter ml-3"></a></li> 
142                    <li><a href="whatsapp://send?text=https://${mtkpaagroup.getPublicLayoutSet().getVirtualHostname()}/-/${.vars['reserved-article-url-title'].data}" data-action="share/whatsapp/share" target="_blank" class="fab fa-whatsapp fimtkteemaartikkelilistasosiaalinenmedia fimtkteemaartikkelilistasosiaalinenmediawhatsapp ml-3"></a></li> 
143                </ul> 
144            </div> 
145        </div> 
146        <div class="col-11" >		 
147            ${bodyText} 
148            <@ch5.memberInfo membersOnly /> 
149            <#if attachments?has_content> 
150                <@ch5.listAttachments attachments /> 
151            </#if> 
152            <#if main_author?? && main_author?has_content> 
153				<@ch5.getWebContentHTML main_author /> 
154			</#if> 
155			 
156			<#if contactPerson1?has_content><#assign contact1 = contactPerson1.getData()></#if> 
157            <#if contactPerson2?has_content><#assign contact2 = contactPerson2.getData()></#if> 
158            <#if contactPerson3?has_content><#assign contact3 = contactPerson3.getData()></#if> 
159 
160            <#if contact1?has_content> 
161				<@ch5.getWebContentHTML contactPerson1 /> 
162			</#if> 
163            <#if contact2?has_content> 
164				<@ch5.getWebContentHTML contactPerson2 /> 
165			</#if> 
166            <#if contact3?has_content> 
167				<@ch5.getWebContentHTML contactPerson3 /> 
168			</#if> 
169 
170            <#--  <#if article_author?? && article_author?has_content> 
171                <#assign contact = article_author.getData()> 
172            </#if> 
173            <#if contact?has_content> 
174				<@ch5.getWebContentHTML article_author /> 
175			</#if>  --> 
176 
177            <#--<@ch5.listRelatedArticles/>--> 
178 
179            <#attempt> 
180                <p><@ch5.listTags tagBaseUrl="/artikkelit/-/tag/"/><p> 
181            <#recover> 
182                <pre> 
183                    ${.error} 
184                </pre> 
185            </#attempt> 
186        </div> 
187 
188    </div> 
189</div> 
190 
191<#assign url = "https://${mtkpaagroup.getPublicLayoutSet().getVirtualHostname()}/-/${.vars['reserved-article-url-title'].data}"> 
192<@ch5.getogptags title summary url /> 

Suositellut artikkelit

MTK:n&nbsp;seitsemän ohjelmakohdan seitsemäs esitys EU:n elpymisrahojen käyttöön.&nbsp;

MTK:n&nbsp;seitsemän ohjelmakohdan kuudes esitys EU:n elpymisrahojen käyttöön.&nbsp;

MTK:n&nbsp;seitsemän ohjelmakohdan viides esitys EU:n elpymisrahojen käyttöön.&nbsp;

Maa- ja metsätaloustuottajain Keskusliitto MTK korostaa, että Suomen talous nousee parhaiten alueidensa vahvuuksia hyödyntämällä.