Creating a resource in crx:
Let’s say I have a node in AEM crx at /etc/mycompany/paths/states and add the resourceType on states node i.e mycompany/servlets/states
Once we are done creating the resource in CRX, we will create a corresponding JAVA class and define this resourceType along with selectors and extension to load the data.
@Component(service = Servlet.class, property = {
Constants.SERVICE_DESCRIPTION + "=" + "Servlet to get the States details",
ServletResolverConstants.SLING_SERVLET_METHODS + "=" + HttpConstants.METHOD_POST,
ServletResolverConstants.SLING_SERVLET_RESOURCE_TYPES + "=" + "mycompany/servlets/states",
ServletResolverConstants.SLING_SERVLET_SELECTORS + "=" + "api.getStates",
ServletResolverConstants.SLING_SERVLET_EXTENSIONS + "=" + "json" })
public class GetStateDetailsServlet extends SlingAllMethodsServlet {
private static final long serialVersionUID = 1L;
private static final Logger LOG = LoggerFactory.getLogger(GetStateDetailsServlet.class);
@Override
protected void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response) {
response.getWriter().println("Hello World!!");
}
}
Once we are done creating the corresponding servlet for using the below property:
1. sling.servlet.resourceTypes: We provide the resourceType of the CRX node.
2. sling.servlet.selectors: We provide the selectors for our servlet URL.
3. sling.servlet.extensions: We provide the extension which we want to use along with the selectors to load the response.
So, the final end point that we will access to get the response will be something like this localhost:4502/etc/mycompany/paths/states.api.getStates.json
No comments:
Post a Comment
If you have any doubts or questions, please let us know.