An error occurred while processing the template.
The following has evaluated to null or missing:
==> assetEntryLocalService.getjobs("keyword", specialismId, subSpecialismId, countJobs, locale) [in template "20102#20129#81915" at line 66, column 32]
----
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 getResponse = assetEntryLocal... [in template "20102#20129#81915" at line 66, column 9]
----
1<#assign FeaturedEmployerTitle = FeaturedEmployerTitle.getData()>
2<#assign PopularSearchesTitle = PopularSearchesTitle.getData()>
3<#assign LatestJobsTitle = LatestJobsTitle.getData()>
4<#assign tabsLabels = "">
5<#assign featuredCount = 0>
6<#assign latestJobsCount = 0>
7<#assign assignedCategoriesIds = "">
8<#assign assignedCategoriesNames = "">
9<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
10<#assign plId = layout.getPlid()>
11<#assign layoutEntry = assetEntryLocalService.fetchEntry("com.liferay.portal.kernel.model.Layout", plId)>
12<#assign assetCategories = layoutEntry.getCategories()/>
13
14<#assign keyword = "">
15<#assign subSpecialismId = "">
16<#assign specialismId = "">
17<#assign parentPlid = layout.getParentPlid()>
18
19<#if FeaturedEmployerTitle != "">
20 <#assign FeaturedEmployerTitle += ','>
21 <#assign featuredEmployerService = serviceLocator.findService("com.hays.employer.service.HaysFeaturedEmployerLocalService") />
22 <#assign totalCount = 6 >
23 <#assign groupIdVal = groupId?c >
24 <#assign targetAudience = "common,jobseeker" >
25 <#list assetCategories as cat>
26 <#assign catName = cat.getCategoryId()>
27 <#assign catName += '|'>
28 <#assign assignedCategoriesIds += catName>
29 </#list>
30 <#assign assignedCategoriesIds = assignedCategoriesIds?keep_before("|")/>
31 <#assign response = featuredEmployerService.getFeaturedEmployers(assignedCategoriesIds, groupIdVal, targetAudience, totalCount)>
32 <#if response.EmpResult??>
33 <#assign EmpResultArray = response.getJSONArray("EmpResult")>
34 <#assign featuredCount = EmpResultArray.length()>
35 <#if featuredCount !=0>
36 <#assign tabsLabels += FeaturedEmployerTitle>
37 </#if>
38 </#if>
39</#if>
40
41<#if LatestJobsTitle != "">
42 <#assign LatestJobsTitle += ','>
43 <#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
44 <#assign nodeId = LayoutLocalService.getLayout(parentPlid).getExpandoBridge().getAttribute("NodeId")>
45 <#list assetCategories as cat>
46 <#assign catName = cat.getName()>
47 <#assign catName += '|'>
48 <#assign assignedCategoriesNames += catName>
49 </#list>
50 <#assign assignedCategoriesNames = assignedCategoriesNames?keep_before("|")/>
51 <#if nodeId == "job-seeker">
52 <#assign specialismId = assignedCategoriesNames>
53 <#else>
54 <#assign subSpecialismId = assignedCategoriesNames>
55 </#if>
56 <#assign ucmLocaleKey = themeDisplay.getLocale()+"."+siteType+"."+"ucmLocale">
57 <#assign projectSURLKey = "Mobile_URL_" + locale.getCountry()>
58 <#if (siteType != "Expert")>
59 <#assign projectSURLKey = projectSURLKey + "_"+ siteType>
60 </#if>
61 <#assign locale = propsUtil.get(ucmLocaleKey)/>
62 <#assign GCSLocales = propsUtil.get("GCSLocales")/>
63 <#assign projectSURL = propsUtil.get(projectSURLKey)/>
64 <#assign countJobs = "5">
65 <#assign assetEntryLocalService = serviceLocator.findService("com.hays.service.jobs.service.HaysJobsLocalService")/>
66 <#assign getResponse = assetEntryLocalService.getjobs("keyword", specialismId, subSpecialismId, countJobs, locale)>
67 <#if getResponse?? && getResponse.result??>
68 <#assign getResponseResult = getResponse.result>
69 <#if getResponseResult.resultCount gt 0>
70 <#assign getResponseResultArray = getResponseResult.getJSONArray("jobs")>
71 <#assign latestJobsCount = getResponseResultArray.length()>
72 <#if getResponseResultArray.length() < 5>
73 <#assign countJobs = getResponseResultArray.length()>
74 </#if>
75 <#if latestJobsCount != 0>
76 <#assign tabsLabels += LatestJobsTitle>
77 </#if>
78 </#if>
79 </#if>
80</#if>
81
82<#if PopularSearchesTitle != "">
83 <#assign PopularSearchesTitle += ','>
84 <#if Label.getSiblings()?has_content>
85 <#assign tabsLabels += PopularSearchesTitle>
86 </#if>
87</#if>
88
89<#if tabsLabels != "">
90 <div class="box">
91 <div class="hays-tabs">
92 <#assign tabsLabels = tabsLabels?keep_before_last(",")/>
93 <@liferay_ui["tabs"]
94 names=tabsLabels
95 param=tabs2
96 refresh=false
97 type=tabs
98 >
99
100 <#if FeaturedEmployerTitle != "" && featuredCount !=0>
101 <@liferay_ui["section"] >
102 <ul class="list emp-list">
103 <#list 0 ..< featuredCount as i>
104 <#assign empTitle = EmpResultArray.get(i).title>
105 <#assign empArticleId = EmpResultArray.get(i).articleId>
106 <#assign empUrl = EmpResultArray.get(i).empUrl>
107 <#assign empImage = EmpResultArray.get(i).image>
108 <li class="${empArticleId}"><a href="${empUrl}" target="_blank"><img src="${empImage}" alt="${empTitle}"></a></li>
109 </#list>
110 </ul>
111 <#assign privateLayout = false>
112 <#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
113 <#assign layouts = LayoutLocalService.getLayouts(groupId, privateLayout)>
114 <#assign featureEmployerPageUrl = "/">
115 <#if (layouts?size > 0)>
116 <#assign featuredEmpSectionFound = 0>
117 <#list layouts as layout>
118 <#if layout?? && featuredEmpSectionFound == 0>
119 <#assign nodeIdFeatured = layout.getExpandoBridge().getAttribute("NodeId")>
120 <#if (nodeIdFeatured??)>
121 <#if (nodeIdFeatured == "featured-employer")>
122 <#assign featuredEmpSectionFound = 1>
123 <#assign featureEmployerPageUrl = layout.getFriendlyURL()>
124 <#assign portalurl= themeDisplay.getURLPortal() >
125 <#if portalurl?contains("expertcontrib")>
126 <#assign featureEmployerPageUrl= "/web"+themeDisplay.getSiteGroup().getFriendlyURL()+ featureEmployerPageUrl >
127 </#if>
128 </#if>
129 </#if>
130 </#if>
131 </#list>
132 </#if>
133 <a class="btn" href="${featureEmployerPageUrl}">${languageUtil.get(themeDisplay.getLocale(), "lr_featuredEmployersTitle")}</a>
134 </@>
135 </#if>
136
137 <#if LatestJobsTitle != "" && latestJobsCount != 0 >
138 <@liferay_ui["section"]>
139 <ul class="list sponsored-list">
140 <#list 0 ..< countJobs?number as i>
141 <#assign JobUrl = getResponseResultArray.get(i).jobRequisitionId>
142 <#if GCSLocales?contains(locale)>
143 <#assign JobUrl += "?jobSource=HaysGCJ">
144 </#if>
145 <#assign jobtitle = getResponseResultArray.get(i).title>
146 <#if getResponseResultArray.get(i).getJSONObject("nonFilterableCustomFields").has("xLocationDescription")>
147 <#assign location = getResponseResultArray.get(i).getJSONObject("nonFilterableCustomFields").getJSONObject("xLocationDescription").getJSONArray("values").getString(0)>
148 <#else>
149 <#assign location = "">
150 </#if>
151 <li><a href="${JobUrl}"><strong>${jobtitle}</strong><small><p>${location}</p></small></a></li>
152 </#list>
153 </ul>
154 <a class="btn" href="${projectSURL}${propsUtil.get("SEARCH")}?q=hays&specialismId=${specialismId}&subSpecialismId=${subSpecialismId}"><span>${languageUtil.get(themeDisplay.getLocale(), "lr_latestAllJobs")}</span></a>
155 </@>
156 </#if>
157
158 <#if PopularSearchesTitle != "">
159 <@liferay_ui["section"]>
160 <#if Label.getSiblings()?has_content>
161 <ul class="list arrow-list">
162 <#list Label.getSiblings() as cur_PopularSearchesContent>
163 <#if cur_PopularSearchesContent?? && cur_PopularSearchesContent.getData()?has_content>
164 <li ><h3><a target="_blank" href="${cur_PopularSearchesContent.Link.getData()}">${cur_PopularSearchesContent.getData()}</a></h3></li>
165 </#if>
166 </#list>
167 </ul>
168 </#if>
169 </@>
170 </#if>
171 </div>
172 </div>
173</@>
174</#if>
Manufacturing & Operations jobs
With a network of offices across China, we have an in-depth knowledge of the local manufacturing jobs market and operations jobs market. We recruit for permanent jobs at all levels, including product design jobs, development jobs, production jobs, maintenance management jobs, process development jobs and quality assurance jobs.
Our consultants work within a particular market sector, such as FMCG, food and beverage, automotive, chemical, medical device and consumer industrial products. This expertise means we understand what employers are looking for. We will guide you through the entire recruitment process, and our expert advice and guidance will give you the advantage in your search for manufacturing and operations jobs.
Search for jobs in manufacturing and jobs in operations below or speak to a recruiting expert at your local Hays office to find out more about our services.
Search for jobs

Are you fairly paid?
Enter your salary details to see how your salary compares against others.

Career Advice
We provide information, tips, and guidance to help you feel fully prepared in your job search.

Join Hays
We partner with you for the long term, working together for your future with endless possibilities.
