An error occurred while processing the template.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.hays.service.jobs.service.HaysJobsLocalService")  [in template "20115#20151#56223" at line 31, column 35]

----
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 assetEntryLocalService = serv...  [in template "20115#20151#56223" at line 31, column 1]
----
1<#assign countryISO = locale?keep_after("_") /> 
2<#assign plId = layout.getPlid()> 
3<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/> 
4<#assign layoutEntry = assetEntryLocalService.fetchEntry("com.liferay.portal.kernel.model.Layout", plId)> 
5<#assign assetCategories = layoutEntry.getCategories()/> 
6<#assign assignedCategories = ""/> 
7  <#list assetCategories as cat> 
8       <#assign catName = cat.getName()> 
9       <#assign catName += '|'> 
10       <#assign assignedCategories += catName> 
11  </#list> 
12  <#assign assignedCategories = assignedCategories?keep_before("|")/> 
13 <#assign subSpecialismId = "">  
14 <#assign specialismId = ""> 
15 <#assign parentPlid = layout.getParentPlid()> 
16 <#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
17 <#if assignedCategories?has_content > 
18 <#assign nodeId = LayoutLocalService.getLayout(parentPlid).getExpandoBridge().getAttribute("NodeId")> 
19 <#if nodeId == "job-seeker"> 
20 <#assign specialismId = assignedCategories> 
21 <#else> 
22 <#assign subSpecialismId = assignedCategories>  
23 </#if> 
24 </#if> 
25 <#assign ucmLocaleKey = themeDisplay.getLocale()+"."+siteType+"."+"ucmLocale"> 
26 <#assign locale = propsUtil.get(ucmLocaleKey)/> 
27 
28<#assign keyword = ""> 
29 
30<#assign count = "5"> 
31<#assign assetEntryLocalService = serviceLocator.findService("com.hays.service.jobs.service.HaysJobsLocalService")  /> 
32<#if (assetEntryLocalService.getjobs(keyword, specialismId, subSpecialismId, count, locale))??> 
33<#assign getResponse = assetEntryLocalService.getjobs(keyword, specialismId, subSpecialismId, count, locale)> 
34 <#assign getResponseCount = getResponse.result.resultCount> 
35 <#if (getResponseCount gte 30)> 
36 <#assign ViewAllText = languageUtil.format(themeDisplay.getLocale(), "lr_ViewAllJobs",getResponseCount)/> 
37<#else> 
38<#assign getResponseCount = ""> 
39<#assign ViewAllText = languageUtil.format(themeDisplay.getLocale(), "lr_ViewAllJobs",getResponseCount)/> 
40</#if> 
41</#if> 
42 
43<script type="text/javascript">  
44function wysToggle() { 
45   if (window.jQuery && jQuery.isReady) { 
46           
47		var expand = $('<a href="javascript:void(0);" id="wysEvent" class="more"><span class="switch">${languageUtil.get(themeDisplay.getLocale(), "lr_ReadMore")}</span><span class="access"> on '+$('.box h1').text()+'</span></a>'); 
48 
49		var totalContents = document.getElementById('wysToggle').innerHTML; 
50		var totalHeight = $('#wysToggle').height(); 
51 
52		if(totalHeight < 125) { 
53	 
54			$('#wysEvent').hide(); 
55
56		else { 
57			var newLimit = 0; 
58			var currentHeight = 0; 
59			/*Keep adding characters until the box is less than 105px height*/ 
60			while(currentHeight < 105) {  
61				newLimit ++; 
62				var newVisibleText = totalContents.substring(0,newLimit); 
63           				$('#wysToggle').html(newVisibleText); 
64           				currentHeight = $('#wysToggle').height();								 
65           			}	 
66           		 
67           			/*With the new text, keep removing charatcers until I find the first blank space*/ 
68           			//while(newVisibleText.charAt(newVisibleText.length-1) != " "){							 
69           			while(!(/\s/.test(newVisibleText.charAt(newVisibleText.length-1)))){ 
70           		 
71           		 
72           				var counter = newVisibleText.length-1; 
73           				newVisibleText = totalContents.substring(0,counter); 
74           				 
75           			}		 
76           	 
77           			$('#wysToggle').html(newVisibleText); 
78           	 
79           			$('#wysToggle > :last-child').append(expand); 
80           			 
81
82           		$('#wysEvent').toggle(function(e){ 
83           			$(this) 
84           				.detach() 
85           				.removeClass('more') 
86           				.addClass('less') 
87           				.children('.switch') 
88           				.text('${languageUtil.get(themeDisplay.getLocale(), "lr_ReadLess")}'); 
89           			$('#wysToggle') 
90           				.html(totalContents) 
91           				.find('> :last-child') 
92           				.append(this); 
93           			 
94           			e.preventDefault(); 
95           		}, function(e){ 
96           			$(this) 
97           				.detach() 
98           				.removeClass('less') 
99           				.addClass('more') 
100           				.children('.switch') 
101           				.text('${languageUtil.get(themeDisplay.getLocale(), "lr_ReadMore")}'); 
102           			$('#wysToggle') 
103           				.html(newVisibleText) 
104           				.find('> :last-child') 
105           				.append(expand); 
106           			e.preventDefault() 
107           		}); 
108
109           	else{ 
110           		window.setTimeout(wysToggle, 100); 
111
112
113           wysToggle(); 
114            
115</script> 
116<#assign responseSiteArray = propsUtil.get("RESPONSE_FRIENDLY_URLS")?split(",")> 
117<#assign responseSiteCheck = responseSiteArray?seq_contains(themeDisplay.getLayout().getGroup().getFriendlyURL())?string("yes", "no")/> 
118<div class="box bullet"> 
119    <#if Title?? && Title.getData()?has_content> 
120        <h1 class="underline">${htmlUtil.unescape(Title.getData())} 
121        <#if Title.SubTitle?? && Title.SubTitle.getData()?has_content> 
122           <br><span class="hays-cyan" style="text-transform: none">${htmlUtil.unescape(Title.SubTitle.getData())}</span> 
123        </#if> 
124        </h1> 
125	</#if> 
126	<div class="content-img"> 
127		<#if SpecialismImage?? && SpecialismImage.getData() != ""> 
128			<#assign SpecialismImageData = SpecialismImage.getData()?replace("<p>", "")?replace("</p>", "")> 
129			<#if themeDisplay.isSignedIn() && responseSiteCheck == "no"> 
130				<#if SpecialismImageData?contains("/" + themeDisplay.getLocale().getLanguage()) && !(SpecialismImageData?contains("href=\"http"))> 
131					${SpecialismImageData?replace("/" + themeDisplay.getLocale().getLanguage(), "/" + themeDisplay.getLocale().getLanguage() + "/web" + themeDisplay.getLayout().getGroup().getFriendlyURL())} 
132				<#elseif !(SpecialismImageData?contains("href=\"http"))> 
133					${SpecialismImageData?replace("href=\"", "href=\"/web" + themeDisplay.getLayout().getGroup().getFriendlyURL())} 
134				<#else> 
135					${SpecialismImageData} 
136				</#if> 
137			<#else> 
138				${SpecialismImageData} 
139			</#if> 
140		</#if> 
141		<div class="hi_inner"> 
142		   <div class="wysiwyg" id="wysToggle">	 
143			  <#if themeDisplay.isSignedIn() && responseSiteCheck == "no"> 
144				<#if Summary.getData()?contains("/" + themeDisplay.getLocale().getLanguage()) && !(Summary.getData()?contains("href=\"http"))> 
145					${Summary.getData()?replace("/" + themeDisplay.getLocale().getLanguage(), "/" + themeDisplay.getLocale().getLanguage() + "/web" + themeDisplay.getLayout().getGroup().getFriendlyURL())} 
146				<#elseif !(Summary.getData()?contains("href=\"http"))> 
147					${Summary.getData()?replace("href=\"", "href=\"/web" + themeDisplay.getLayout().getGroup().getFriendlyURL())} 
148				<#else> 
149					${Summary.getData()} 
150				</#if> 
151			<#else> 
152				${Summary.getData()} 
153			</#if> 
154			  </div> 
155		</div>  
156		<#assign count = "5"> 
157		<#assign assetEntryLocalService = serviceLocator.findService("com.hays.service.jobs.service.HaysJobsLocalService")  /> 
158		<#if (assetEntryLocalService.getjobs(keyword, specialismId, subSpecialismId, count, locale))??> 
159			<#assign getResponse = assetEntryLocalService.getjobs(keyword, specialismId, subSpecialismId, count, locale)> 
160			<#assign getResponseCount = getResponse.result.resultCount> 
161			<#if (getResponseCount !=0) && assignedCategories?has_content> 
162				<#assign mobileUrlKey = themeDisplay.getLocale()+"."+siteType+"."+"Mobile_URL"> 
163				<a class="btn" id="googleJobs" href="${propsUtil.get(mobileUrlKey)}/search/?q=hays&amp;s=%2BxReleaseDate&amp;specialismId=${specialismId}&amp;subSpecialismId=${subSpecialismId}&amp;_ga=2.255521741.477195505.1538057228-1137019125.1538057228">${ViewAllText} <span id="gcsCountView"></span> ${languageUtil.get(themeDisplay.getLocale(), "")}</a> 
164			</#if>   
165		</#if>      
166	     
167    </div> 
168</div> 
169       
170 
171<style> 
172.access { 
173    display: none!important; 
174
175</style> 

Hays salary check

Voer hieronder jouw salarisgegevens in en vergelijk jouw salaris met de gegevens uit onze meest recente salarisgids.

Here's how your salary compares to your peers. If you would like to talk to a consultant about any aspect of your career, you can find your nearest Hays office here.

You
Highest
Average
Lowest

    Similar jobs

Find your next job

Find perm jobs
Find contracting jobs
Find flexibele jobs
Jobs in Ghent
Jobs in Brussels
Jobs in Antwerp
Send us your resume
 

Salary guides

The Hays salary guides provide a clear overview of current salaries and offer insights into market and recruitment trends.

Are your friends looking for a job?

Refer your friends to Hays and receive €250 for every friend who finds a job via us.