Forked from nateyolles/AemResourceResolutionServlet.java
Created
May 17, 2021 14:08
-
-
Save Surajkamdi/51d2fa3e3d46bdfb25bf9fcde4a1c281 to your computer and use it in GitHub Desktop.
Get the HTML markup for a resource in AEM / CQ.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.nateyolles.aem; | |
import org.apache.felix.scr.annotations.Reference; | |
import org.apache.felix.scr.annotations.sling.SlingServlet; | |
import org.apache.sling.api.SlingHttpServletRequest; | |
import org.apache.sling.api.SlingHttpServletResponse; | |
import org.apache.sling.api.servlets.SlingSafeMethodsServlet; | |
import org.apache.sling.engine.SlingRequestProcessor; | |
import com.day.cq.contentsync.handler.util.RequestResponseFactory; | |
import com.day.cq.wcm.api.WCMMode; | |
import javax.servlet.ServletException; | |
import javax.servlet.http.HttpServletRequest; | |
import javax.servlet.http.HttpServletResponse; | |
import java.io.ByteArrayOutputStream; | |
import java.io.IOException; | |
@SlingServlet(paths={"/bin/foo"}) | |
public class AemResourceResolutionServlet extends SlingSafeMethodsServlet { | |
/** Service to create HTTP Servlet requests and responses */ | |
@Reference | |
private RequestResponseFactory requestResponseFactory; | |
/** Service to process requests through Sling */ | |
@Reference | |
private SlingRequestProcessor requestProcessor; | |
@Override | |
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { | |
/* The resource path to resolve. Use any selectors or extension. */ | |
String requestPath = "/content/myapp/us/en/index/jcr:content/myparsys/mycomponent_f93d.html"; | |
/* Setup request */ | |
HttpServletRequest req = requestResponseFactory.createRequest("GET", requestPath); | |
WCMMode.DISABLED.toRequest(req); | |
/* Setup response */ | |
ByteArrayOutputStream out = new ByteArrayOutputStream(); | |
HttpServletResponse resp = requestResponseFactory.createResponse(out); | |
/* Process request through Sling */ | |
requestProcessor.processRequest(req, resp, request.getResourceResolver()); | |
String html = out.toString(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment