حصل خطأ عند معالجة القالب.
Java method "com.sun.proxy.$Proxy1091.getArticle(long, String)" threw an exception when invoked on com.sun.proxy.$Proxy1091 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@79204c11"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign journalArticle = JournalArtic...  [in template "20095#20121#61184" at line 95, column 1]
----
1<style> 
2	.modal-success-message .modal-content{ 
3	background-color: #fff; 
4
5	.modal-success-message .modal-content .btn-cancel{ 
6margin-bottom: 20px 
7
8	.job-details-z{ 
9	position: relative; 
10		z-index:-1; 
11
12	.job-details  img{ 
13	    width: -webkit-fill-available; 
14	}  
15	.job-details .designation{ 
16	position: absolute; 
17    top: 240px; 
18    left: 50%; 
19    transform: translate(-50%, -50%); 
20    text-align: center; 
21    width: 63%; 
22	}  
23.job-details .designation .header-job-apply{ 
24		top: 60px;     
25    position: relative; 
26
27	.job-details .designation h2{ 
28	color:#FF6D00 !important; 
29		margin-bottom:1rem !important; 
30	}  
31	.job-details .job-type-detail{ 
32	display:flex; 
33		gap:30px; 
34		align-items: center; 
35    justify-content: center; 
36		letter-spacing: 2.4px; 
37    color: #464555; 
38    text-transform: uppercase; 
39    font-size: 16px; 
40    font-weight: 600; 
41
42	.job-details h3{ 
43	color: #7E7D88 !important; 
44
45	 
46	.job-details .go-back-card{ 
47	background: #E7EDF933 0% 0% no-repeat padding-box; 
48border: 2px solid #E7EDF9; 
49border-radius: 12px; 
50		top: 8rem; 
51		 
52
53		.job-details .go-back-card .rightCard-title{ 
54	padding: 1rem; 
55    border-bottom: 1px solid #E7EDF9; 
56    align-items: center; 
57    gap: 10px 
58
59	.job-details .go-back-card .rightCard-detail{ 
60	color: #464555; 
61		padding: 1rem; 
62		 border-bottom: 1px solid #E7EDF9; 
63
64	.job-details .go-back-card .rightCard-btn{ 
65	padding: 1rem; 
66		 border-bottom: 1px solid #E7EDF9; 
67		text-align: center; 
68
69	.job-details .go-back-card .socialmediaCard{ 
70	padding: 1rem; 
71		 border-bottom: 1px solid #E7EDF9; 
72
73	.job-details .go-back-card .socialmediaCard .social-icon{ 
74	display:flex; 
75		gap:25px; 
76
77	.job-details .go-back-card .socialmediaCard p{ 
78	  font-weight: 600; 
79    color: #7E7D88; 
80
81</style> 
82 
83<#if themeDisplay?has_content> 
84	</#if> 
85<#assign ddmFieldLocalService=serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMFieldLocalService") /> 
86<#assign JournalArticleLocalService=serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
87<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
88<#assign AssetEntryAssetCategoryRel = serviceLocator.findService("com.liferay.asset.entry.rel.service.AssetEntryAssetCategoryRelLocalService") /> 
89<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") /> 
90<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
91<#assign url = "${themeDisplay.getURLCurrent()}"> 
92<#assign lastIndex = url?last_index_of("=") /> 
93<#assign articleId = url?substring(lastIndex+1) /> 
94<#assign scopeGroupId = themeDisplay.getScopeGroupId() /> 
95<#assign journalArticle = JournalArticleLocalService.getArticle(scopeGroupId, articleId) /> 
96<#assign metaDataMap = {} /> 
97	<#assign articleIdLong = journalArticle.getId() /> 
98	<#assign instanceId = themeDisplay.getPortletDisplay().getInstanceId() />  
99	<#assign jobType = "" 
100					 designation = "" 
101					 experience = "" 
102					 whatWillYouDo = "" 
103					 experienceRequired = "" 
104					 desirable = "" 
105					 location = "" 
106					 articleTitle = journalArticle.getTitle() 
107					 />  
108	 <#assign jobType=[] /> 
109		 
110	 
111<#assign	ddmFormStructure = journalArticle.getDDMStructure() 
112				 ddmForm = ddmFormStructure.getDDMForm() 
113				 /> 
114  <#assign ddmFormValues = ddmFieldLocalService.getDDMFormValues(ddmForm, articleIdLong) 
115				 ddmFormFieldValues = ddmFormValues.getDDMFormFieldValues() 
116				 /> 
117<#list ddmFormFieldValues as field> 
118        <#list field.getNestedDDMFormFieldValues() as nestedField> 
119					<#assign curFieldReferenceName = nestedField.getFieldReference() 
120								 curFieldValue = nestedField.getValue().getString(locale) />  
121					<#if nestedField.getFieldReference() == "JobType"> 
122					    <#assign jobType=  jobType+[curFieldValue]/> 
123					</#if> 
124				<#assign metaDataMap = metaDataMap + {curFieldReferenceName : curFieldValue} /> 
125        </#list> 
126</#list> 
127					 
128 
129							<#assign designation = metaDataMap.Designation 
130					 experience = metaDataMap.Experience 
131					 whatWillYouDo = metaDataMap.WhatYoullDo 
132					 experienceRequired = metaDataMap.ExperienceRequired 
133					 desirable = metaDataMap.Desirable 
134					 location = metaDataMap.Location 
135					 />  
136						<#assign jobTypeCount = jobType?size/> 
137						<div class="job-details" > 
138							<div > 
139							<img class="" src="/documents/d/guest/shape"/> 
140							<div class="designation"> 
141								<h2>${designation}</h2> 
142								<div class="job-type-detail"> 
143								<#list jobType as type> 
144									 
145                   <p>${type}</p> 
146									 
147                </#list> 
148									</div> 
149								<div class="header-job-apply"> 
150									<a class="btn btn-primary" id="<portlet:namespace/>applyForm" onClick = "openCareerForm()" >APPLY FOR THIS ROLE</a> 
151								<@liferay_portlet["runtime"] 
152                    defaultPreferences="" 
153                    portletProviderAction=portletProviderAction.ACTION 
154                    instanceId="${instanceId}" 
155                    portletName="com_infoaxon_join_us_web_ComInfoaxonJoinUsWebPortlet" 
156                /> 
157								</div> 
158							</div> 
159							</div> 
160							<div class="container job-details-z"> 
161								<div class="row"> 
162									<div class="col-md-8 col col-lg-8 col-12 col-sm-12"> 
163										<div class="whatyoudo"> 
164											<h3 class="mb-3">What you’ll do</h3> 
165											<p>${whatWillYouDo}</p> 
166										</div> 
167										<div class="ExperienceRequired"> 
168											<h3 class="mb-3">Experience Required</h3> 
169											<p>${experienceRequired}</p> 
170										</div> 
171										<div class="Desirable"> 
172											<h3 class="mb-3">Desirable</h3> 
173											<p>${desirable}</p> 
174										</div> 
175									</div> 
176										<div class="col-md-4 col col-lg-4 col-12 col-sm-12"> 
177										<div class="card go-back-card"> 
178											<div class="d-flex rightCard-title"> 
179												<span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> 
180                            <g id="Layer_2" data-name="Layer 2" transform="translate(0 24) rotate(-90)"> 
181                              <g id="arrow-upward"> 
182                                <rect id="Rectangle_5542" data-name="Rectangle 5542" width="24" height="24" transform="translate(24 24) rotate(180)" fill="#464555" opacity="0"/> 
183                                <path id="Path_2948" data-name="Path 2948" d="M5.23,10.64a1,1,0,0,0,1.41.13L11,7.14V19a1,1,0,0,0,2,0V7.14l4.36,3.63a1,1,0,0,0,1.28-1.54l-6-5-.15-.09-.13-.07a1,1,0,0,0-.72,0l-.13.07-.15.09-6,5a1,1,0,0,0-.13,1.41Z" fill="#464555"/> 
184                              </g> 
185                            </g> 
186                          </svg> 
187                        </span> 
188												<p class="m-0">Go back</p> 
189											</div> 
190											<div class="rightCard-detail"> 
191												<p>${designation}</p> 
192												<p>${experience}</p> 
193												<p>${location}</p> 
194											</div> 
195											<div class="rightCard-btn"> 
196												<a class="btn btn-primary" id="<portlet:namespace/>applyFormBox" onClick = "openCareerForm()" >APPLY FOR THIS ROLE</a> 
197											</div> 
198											<div class="socialmediaCard"> 
199												<p>Share on social media</p> 
200												<div class="social-icon"> 
201													<a><svg xmlns="http://www.w3.org/2000/svg" width="20.815" height="20.814" viewBox="0 0 20.815 20.814"> 
202                           <path id="linkedin-in" d="M4.659,20.824H.344V6.928H4.659ZM2.5,5.032A2.511,2.511,0,1,1,5,2.509,2.52,2.52,0,0,1,2.5,5.032ZM20.81,20.824H16.5V14.06c0-1.612-.033-3.68-2.244-3.68-2.244,0-2.587,1.752-2.587,3.564v6.881H7.362V6.928H11.5v1.9h.06a4.534,4.534,0,0,1,4.083-2.244c4.367,0,5.17,2.876,5.17,6.612v7.634Z" transform="translate(0 -0.01)" fill="#464555"/> 
203                           </svg></a> 
204													<a><svg xmlns="http://www.w3.org/2000/svg" width="20.74" height="20.74" viewBox="0 0 20.74 20.74"> 
205                            <path id="Path_17732" data-name="Path 17732" d="M80.37,11.9a1.521,1.521,0,1,0-1.521-1.521A1.522,1.522,0,0,0,80.37,11.9Zm3.285-4.455a.828.828,0,1,0-.828-.828A.828.828,0,0,0,83.654,7.443Zm-.242,2.934A3.043,3.043,0,1,1,77.5,9.368H76.031v4.124a1.3,1.3,0,0,0,1.3,1.295H83.2a1.3,1.3,0,0,0,1.295-1.295V8.072h-2.14a3.034,3.034,0,0,1,1.059,2.3ZM80.37.007a10.37,10.37,0,1,0,10.37,10.37A10.37,10.37,0,0,0,80.37.007Zm5.537,14.575a1.733,1.733,0,0,1-1.728,1.728H76.345a1.734,1.734,0,0,1-1.728-1.728V6.748a1.733,1.733,0,0,1,1.728-1.728h7.834a1.733,1.733,0,0,1,1.728,1.728v7.834Z" transform="translate(-70 -0.007)" fill="#464555"/> 
206                           </svg></a> 
207													<a><svg xmlns="http://www.w3.org/2000/svg" width="24.745" height="20.098" viewBox="0 0 24.745 20.098"> 
208                           <path id="twitter" d="M22.2,53.091c.016.22.016.44.016.659A14.331,14.331,0,0,1,7.788,68.18,14.332,14.332,0,0,1,0,65.9a10.49,10.49,0,0,0,1.225.063,10.157,10.157,0,0,0,6.3-2.167,5.08,5.08,0,0,1-4.742-3.517,6.394,6.394,0,0,0,.958.078,5.363,5.363,0,0,0,1.335-.173A5.072,5.072,0,0,1,1,55.21v-.063a5.107,5.107,0,0,0,2.292.644,5.079,5.079,0,0,1-1.57-6.783,14.416,14.416,0,0,0,10.457,5.307,5.725,5.725,0,0,1-.126-1.162,5.076,5.076,0,0,1,8.777-3.47,9.985,9.985,0,0,0,3.219-1.225,5.058,5.058,0,0,1-2.23,2.795,10.167,10.167,0,0,0,2.92-.785A10.9,10.9,0,0,1,22.2,53.091Z" transform="translate(0 -48.082)" fill="#464555"/> 
209                          </svg></a> 
210													<a><svg xmlns="http://www.w3.org/2000/svg" width="11.155" height="20.828" viewBox="0 0 11.155 20.828"> 
211                           <path id="facebook-f" d="M33.314,11.716l.578-3.769H30.276V5.5A1.885,1.885,0,0,1,32.4,3.464h1.644V.255A20.052,20.052,0,0,0,31.127,0C28.148,0,26.2,1.805,26.2,5.074V7.947H22.89v3.769H26.2v9.112h4.075V11.716Z" transform="translate(-22.89)" fill="#464555"/> 
212                           </svg></a> 
213												</div> 
214											</div> 
215										</div> 
216									</div> 
217								</div> 
218							</div> 
219						</div> 
220		<#assign vocabularyName = "job categories" /> 
221 
222<#assign vocabularies = AssetVocabularyLocalService.getGroupVocabularies(themeDisplay.getScopeGroupId()) /> 
223 
224<#list vocabularies as vocab> 
225    <#if vocab.getName() == vocabularyName> 
226        <#assign vocabulary = vocab> 
227        <#break> 
228    </#if> 
229</#list> 
230	<#assign categoryIds = []/> 
231	<#assign categoryNames = []/> 
232  <#assign categoryMap = {}/> 
233<#if vocabulary??> 
234    <#assign rootCategories = AssetCategoryLocalService.getVocabularyRootCategories(vocabulary.getVocabularyId(), -1, -1, null) /> 
235	<div class="asset-categories"> 
236        <h3 class="text-center mb-5">Other jobs</h3> 
237           <#list rootCategories as rootCategory> 
238							<#assign categoryName = "${rootCategory.getTitle(locale)}" />	 
239   			 			<#assign categoryId = rootCategory.getCategoryId() /> 
240						 <#assign categoryNames = categoryNames + [categoryName]> 
241						  <#assign categoryIds = categoryIds + [categoryId]> 
242							<#assign assetList = AssetEntryAssetCategoryRel.getAssetEntryAssetCategoryRelsByAssetCategoryId(categoryId) /> 
243									<#assign assetListSize = assetList?size/> 
244											<a class="btn btn-primary" name="${categoryName}" id="btn_${categoryId}" onclick="showCategory(${categoryId},'${categoryName}',${assetListSize})">${categoryName} (${assetListSize})</a> 
245           </#list> 
246    </div> 
247    <div class="asset-categories"> 
248           <#list rootCategories as rootCategory> 
249							<#assign categoryName = "${rootCategory.getTitle(locale)}" />	 
250   			 			<#assign categoryId = rootCategory.getCategoryId() /> 
251						 <#assign categoryNames = categoryNames + [categoryName]> 
252						  <#assign categoryIds = categoryIds + [categoryId]> 
253							<#assign assetList = AssetEntryAssetCategoryRel.getAssetEntryAssetCategoryRelsByAssetCategoryId(categoryId) /> 
254									<#assign assetListSize = assetList?size/> 
255								<div class="container"> 
256									<div class="row"> 
257								<div class="col-md-12"> 
258								<div class="category-div"  id="${categoryId}" style="display: none;"> 
259							<#list assetList as asset> 
260							   <#assign entry = AssetEntryLocalService.getAssetEntry(asset.getAssetEntryId())/> 
261								 <#assign entryId = entry.getClassPK() /> 
262								<#assign journalA = JournalArticleLocalService.getLatestArticle(entryId) /> 
263								    <@liferay_journal["journal-article"] 
264                       articleId=journalA.getArticleId() 
265                       ddmTemplateKey="53090" 
266                       groupId=journalA.getGroupId() 
267                       /> 
268							</#list> 
269								</div> 
270										</div> 
271									</div> 
272								</div> 
273								<h2> 
274									<span class="no-content" id="no-content-error${categoryId}" style="display: none;">No content availabe for ${categoryName}</span> 
275								</h2> 
276           </#list> 
277    </div> 
278</#if> 
279 
280	 
281	<script> 
282		 
283$(document).ready(function(){ 
284	$('.category-div:first').show(); 
285	var count = "${jobTypeCount}"; 
286	$("#infoaxon-careers-form-modal").hide(); 
287var counter = 0; 
288		<#list jobType as job> 
289   	var jb = "${job}"; 
290		var input = $("<p>"); 
291     
292    input.attr("id", "job-type" + counter); 
293		input.attr("name", "job-type" + counter); 
294		input.attr("class","job-types-list"); 
295		input.text(jb); 
296		var modalHeader = $("#jobTypeHeader"); 
297		modalHeader.append(input); 
298		counter++; 
299</#list> 
300}); 
301		var jobTitle = "${articleTitle}"; 
302		var desgination = "${designation}"; 
303		var experience = "${experience}"; 
304				  
305 
306 
307	function openCareerForm(){ 
308		$("#infoaxon-career-form")[0].reset(); 
309		$("#infoaxon-careers-form-modal").show(); 
310		$("#applyForm").hide(); 
311		$("#desgination").text(desgination); 
312		$("#experience").text(experience); 
313	}		 
314	function closeCareerFormModal(){ 
315		$("#infoaxon-careers-form-modal").hide(); 
316		$("#infoaxon-career-form")[0].reset(); 
317		$("#applyForm").show(); 
318		$(".removeMessage").html(""); 
319		$(".removeMessage").css("display","none"); 
320		$("#applyForm").show(); 
321	}  
322	function closeModal(){ 
323	    $("#career-model-success").hide(); 
324	    $("#infoaxon-career-form")[0].reset();		 
325	    $("#applyForm").show(); 
326	}  
327	function backToHome(){ 
328		 $("#career-model-success").hide(); 
329			 
330
331			function showCategory(id,name,count){ 
332				$(".category-div").hide(); 
333			$(".no-content").hide(); 
334		  if(count > 0){ 
335			  $("#"+id).show(); 
336			} else { 
337					$("#no-content-error"+id).show(); 
338
339
340 
341</script>