Java Random Number Get Servlet
Hello,
I'm a Java intern and I've been assigned to make a servlet that receives a get request and returns a random number in response. I've already done a project before that submitted a form request to register new partners using a model I've created. Nevertheless, I've been requested to make this one without creating a new component.
This is my service:
@8220494(service = {RandomNumberServiceImpl.class}, immediate = true)
public class RandomNumberServiceImpl implements RamdomNumberService {
@3214626
private Resource resource;
public int generateRandomNumber() {
return (int) (Math.random () * 100);
}
}
And this is my servlet:
@8220494(service = Servlet.class,
property = {
"sling.servlet.methods=" + HttpConstants.METHOD_GET,
"sling.servlet.paths=" + "/bin/random-number",
"sling.servlet.selectors=" + "json"})
public class RandomNumberServlet extends SlingAllMethodsServlet {
private static final Logger log = LoggerFactory.getLogger (RandomNumberServlet.class);
@3214626
private RamdomNumberService ramdomNumberService;
protected void doGet(SlingHttpServletRequest req, SlingHttpServletResponse resp) throws ServletException, IOException {
JSONObject responseObject = new JSONObject();
try {
int randomNumber = ramdomNumberService.generateRandomNumber ();
responseObject.put("randomNumber", randomNumber);
resp.setContentType("application/json");
resp.getWriter().write(responseObject.toString());
} catch (Exception e) {
log.error("Error generating random number: {}", e.getMessage());
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Error generating random number");
}
}
}
But whenever I try to make the get request on the author instance (localhost:port/bin/random-number, localhost:port/bin/random-number.json etc) I always get a 404 no resource found error. I've already checked if /bin is permitted in the system console. What am I missing? Is it because I didn't create a model/component and don't have a resource for it in JCR? How can I make this work?
