


Sling Servlet A Servlet is a class used to extend the capabilities of servers that host applications accessed by means of a request-response programming model. For such applications, Servlet technology defines HTTP-specific servlet classes. All servlets must implement the Servlet interface, which defines life-cycle methods. A servlet in AEM can be registered as OSGi service: you can extend SlingSafeMethodsServlet for read-only implementation or SlingAllMethodsServlet in order to implement all RESTful operations. Servlet Code import javax.servlet.Servlet; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.SlingHttpServletResponse; import org.apache.sling.api.servlets.SlingAllMethodsServlet; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; import com.adobe.aemfd.docmanager.Document; import com.adobe.fd.forms.api.FormsService; @Component(service={Servlet.class}, property={"sling.servlet.methods=post", "sling.servlet.paths=/bin/mergedataWithAcroform"}) public class MyFirstAEMFormsServlet extends SlingAllMethodsServlet { private static final long serialVersionUID = 1L; @Reference FormsService formsService; protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) { String file_path = request.getParameter("save_location"); java.io.InputStream pdf_document_is = null; java.io.InputStream xml_is = null; javax.servlet.http.Part pdf_document_part = null; javax.servlet.http.Part xml_data_part = null; try { pdf_document_part = request.getPart("pdf_file"); xml_data_part = request.getPart("xml_data_file"); pdf_document_is = pdf_document_part.getInputStream(); xml_is = xml_data_part.getInputStream(); Document data_merged_document = formsService.importData(new Document(pdf_document_is), new Document(xml_is)); data_merged_document.copyToFile(new File(file_path)); } catch(Exception e) { response.sendError(400,e.getMessage()); } } }Servlet Code import javax.servlet.Servlet; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.SlingHttpServletResponse; import org.apache.sling.api.servlets.SlingAllMethodsServlet; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; import com.adobe.aemfd.docmanager.Document; import com.adobe.fd.forms.api.FormsService; @Component(service={Servlet.class}, property={"sling.servlet.methods=post", "sling.servlet.paths=/bin/mergedataWithAcroform"}) public class MyFirstAEMFormsServlet extends SlingAllMethodsServlet { private static final long serialVersionUID = 1L; @Reference FormsService formsService; protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) { String file_path = request.getParameter("save_location"); java.io.InputStream pdf_document_is = null; java.io.InputStream xml_is = null; javax.servlet.http.Part pdf_document_part = null; javax.servlet.http.Part xml_data_part = null; try { pdf_document_part = request.getPart("pdf_file"); xml_data_part = request.getPart("xml_data_file"); pdf_document_is = pdf_document_part.getInputStream(); xml_is = xml_data_part.getInputStream(); Document data_merged_document = formsService.importData(new Document(pdf_document_is), new Document(xml_is)); data_merged_document.copyToFile(new File(file_path)); } catch(Exception e) { response.sendError(400,e.getMessage()); } } }
Please use this thread to ask the related questions.
Topics help categorize Community content and increase your ability to discover relevant content.
Views
Replies
Sign in to like this content
Total Likes