GuidesApiException occured: Unable to get resourceResolverFactory services. Check whether bundle has been ininitialised correctly
We have created a API which creates baseline following is the servlet code . We are also using a service user for resource resolver and the servlet is a path based servlet. This code works fine in local but when deployed to AEM cloud throwing below error .
GuidesApiException occured: Unable to get resourceResolverFactory services. Check whether bundle has been ininitialised correctly.
Servlet code
import com.adobe.fmdita.api.baselines.BaselineUtils;
import com.adobe.fmdita.api.exception.GuidesApiException;
@8220494(service = Servlet.class, property = { Constants.SERVICE_DESCRIPTION + "=Baseline Servlet",
"sling.servlet.methods=" + HttpConstants.METHOD_POST, "sling.servlet.paths=" + "/bin/createBaseline" })
public class BaselineServlet extends SlingAllMethodsServlet {
private static final long serialVersionUID = 1L;
private static final Logger logger = LoggerFactory.getLogger(BaselineServlet.class);
@3214626
private ResourceResolverFactory resourceResolverFactory;
@9944223
protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response)
throws ServletException, IOException {
String baselineTitle = request.getParameter("baselineName");
String sourcePath = request.getParameter("mapPapth");
String label = request.getParameter("label");
LinkedHashMap<String, Object> directContext = new LinkedHashMap<>();
LinkedHashMap<String, Object> indirectContext = new LinkedHashMap<>();
ResourceResolver resolver = ResourceUtil.getServiceResourceResolver(resourceResolverFactory);
Session session = null;
try {
session = resolver.adaptTo(Session.class);
String baselineDetails = BaselineUtils.createBaseline(session, sourcePath, baselineTitle, label,
directContext, indirectContext);
response.setContentType(application/json);
logger.info("Baseline Created Successfully with Name:{}", baselineDetails);
}
} catch (GuidesApiException e) {
logger.error("GuidesApiException occured: {}", e.getMessage());
response.setContentType(application/json);
response.setStatus(SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR);
response.getWriter().write("{\"status\": \"error\", \"message\": \"Unable to create basleline\"}");
} finally {
if (session != null) {
session.logout();
}
if (resolver.isLive()) {
resolver.close();
}
}
}
}