Highlighted

AEM Forms watch folder through Workflow

Avatar

Avatar

punitk81275354

Avatar

punitk81275354

punitk81275354

21-11-2019

Hello,

I am new to AEM forms and sites.

My requirment is that read xml from a folder and copy the same file into CRX at locaiton /content/xml-files.

Hence i followed below steps

1.created a workflow which can read the file and copy to destionation folder. in this workflow, i have used process task between start and end.

2. I gave my java class name under process task. and same attached here named WatchFolderTestWW.java

3. I have configured the watched folder from AEM->tools->forms->watched folder configuraiton

4. in this confiuration, i used same workflow which i have created for execution.

5. but able to execute the java

Test Case :

1. copy one Address.xml into WatchFolderTestWW/input folder

2. document will go to failure folder with error.

WatchFolderTestWW.java

package wkint.core;

import com.adobe.aemfd.docmanager.Document;

import com.adobe.aemfd.watchfolder.service.api.ContentProcessor;

import com.adobe.aemfd.watchfolder.service.api.ProcessorContext;

import com.adobe.aemfd.watchfolder.workflow.api.WorkflowContext;

import com.adobe.aemfd.watchfolder.workflow.api.WorkflowContextProcessor;

import com.day.cq.workflow.WorkflowException;

import com.day.cq.workflow.WorkflowSession;

import com.day.cq.workflow.exec.WorkItem;

import com.day.cq.workflow.exec.WorkflowProcess;

import com.day.cq.workflow.metadata.MetaDataMap;

import org.apache.sling.api.servlets.HttpConstants;

import org.osgi.framework.Constants;

import org.osgi.service.component.annotations.Component;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import java.io.File;

import java.util.Map;

@Component(service= WorkflowProcess.class,

  property={

  Constants.SERVICE_DESCRIPTION + "=Watch Folder Test with Workflow",

  "sling.servlet.methods=" + HttpConstants.METHOD_GET,

  "sling.servlet.resourceTypes="+ "wkint/components/structure/page",

  "sling.servlet.extensions=" + "txt",

  "process.label" + "=Watch Folder Test Using Workflow"

  })

public class WatchFolderTestWW implements WorkflowProcess {

  private static final Logger log = LoggerFactory.getLogger(WatchFolderTest.class);

  @Override

  public void execute(WorkItem workItem, WorkflowSession workflowSession, MetaDataMap metaDataMap) throws WorkflowException {

  log.info("Execute method starts");

  }

}

ERROR in error.log

21.11.2019 12:21:39.814 *ERROR* [JobHandler: /var/workflow/instances/server0/2019-11-20_1/WatchFolderAccess_8:/etc/fd/watchfolder/staging/MyWatchFolderWW/Px5c673c5c78d80ec4164368a8] com.adobe.fd.forms.internal.exception.FormsServiceException AEM_FRM_001_004:Unexpected Exception: Error creating ByteReader for given document
com.adobe.internal.pdftoolkit.core.exceptions.PDFIOException: Error creating ByteReader for given document
at com.adobe.aemfd.pdfdocmanager.SharedPdfDocumentContext.newByteReader(SharedPdfDocumentContext.java:109) [adobe-aemds-core-pdfdocmanager:3.0.36]
at com.adobe.aemfd.pdfdocmanager.SharedPdfDocumentContext.toPDFDocument(SharedPdfDocumentContext.java:146) [adobe-aemds-core-pdfdocmanager:3.0.36]
at com.adobe.aemfd.pdfdocmanager.SharedPdfDocumentContext.toPDFDocument(SharedPdfDocumentContext.java:126) [adobe-aemds-core-pdfdocmanager:3.0.36]
at com.adobe.fd.forms.internal.utils.Utils.createPDFDocument(Utils.java:138) [com.adobe.livecycle.adobe-lc-forms-bedrock-connector:8.0.74]
at com.adobe.fd.forms.internal.ImportDataService.importData(ImportDataService.java:52) [com.adobe.livecycle.adobe-lc-forms-bedrock-connector:8.0.74]
at com.adobe.fd.forms.impl.FormsServiceImpl.importData(FormsServiceImpl.java:196) [com.adobe.livecycle.adobe-lc-forms-bedrock-connector:8.0.74]
at com.adobe.fd.workflow.forms.impl.ImportData.internal_execute(ImportData.java:84) [com.adobe.aemfd.adobe-aemfd-workflow-process:5.0.70]
at com.adobe.fd.workflow.internal.common.AEMFDWorkflowProcess$1.call(AEMFDWorkflowProcess.java:71) [com.adobe.aemfd.adobe-aemfd-workflow-process:5.0.70]
at com.adobe.fd.workflow.internal.common.AEMFDWorkflowProcess$1.call(AEMFDWorkflowProcess.java:68) [com.adobe.aemfd.adobe-aemfd-workflow-process:5.0.70]
at com.adobe.granite.resourceresolverhelper.impl.ResourceResolverHelperImpl.callWith(ResourceResolverHelperImpl.java:65) [com.adobe.granite.resourceresolverhelper:1.0.4]
at com.adobe.fd.workflow.internal.common.AEMFDWorkflowProcess.execute(AEMFDWorkflowProcess.java:68) [com.adobe.aemfd.adobe-aemfd-workflow-process:5.0.70]
at com.adobe.granite.workflow.core.job.HandlerBase.executeProcess(HandlerBase.java:195) [com.adobe.granite.workflow.core:2.0.240]
at com.adobe.granite.workflow.core.job.JobHandler.process(JobHandler.java:260) [com.adobe.granite.workflow.core:2.0.240]
at org.apache.sling.event.impl.jobs.JobConsumerManager$JobConsumerWrapper.process(JobConsumerManager.java:502) [org.apache.sling.event:4.2.12]
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.startJob(JobQueueImpl.java:293) [org.apache.sling.event:4.2.12]
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.access$100(JobQueueImpl.java:60) [org.apache.sling.event:4.2.12]
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl$1.run(JobQueueImpl.java:229) [org.apache.sling.event:4.2.12]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.MalformedURLException: For input string: "\Punit\Adobe Experience Manager\MyWatchFolder\input\Address.pdf"
at java.net.URL.<init>(Unknown Source)
at com.adobe.aemds.datamanager.impl.UrlUtil.toURL(UrlUtil.java:91) [adobe-aemds-core-bmc:3.0.36]
at com.adobe.aemds.bedrock.internal.Utilities.toURL(Utilities.java:202) [adobe-aemds-core-bmc:3.0.36]
at com.adobe.aemfd.docmanager.internal.passivation.jcr.JcrURLPassivationHandler.getURL(JcrURLPassivationHandler.java:38) [adobe-aemds-core-docmanager:3.0.36]
at com.adobe.aemfd.docmanager.internal.passivation.url.AbstractURLPassivationHandler.openConnectionForPassivation(AbstractURLPassivationHandler.java:70) [adobe-aemds-core-docmanager:3.0.36]
at com.adobe.aemfd.docmanager.Document.doPassivate(Document.java:241) [adobe-aemds-core-docmanager:3.0.36]
at com.adobe.aemfd.docmanager.Document.passivate(Document.java:320) [adobe-aemds-core-docmanager:3.0.36]
at com.adobe.aemfd.docmanager.Document.getInlineData(Document.java:345) [adobe-aemds-core-docmanager:3.0.36]
at com.adobe.aemfd.pdfdocmanager.SharedPdfDocumentContext.newByteReader(SharedPdfDocumentContext.java:62) [adobe-aemds-core-pdfdocmanager:3.0.36]
... 19 common frames omitted
Caused by: java.lang.NumberFormatException: For input string: "\Punit\Adobe Experience Manager\MyWatchFolder\input\Address.pdf"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.net.URLStreamHandler.parseURL(Unknown Source)
... 28 common frames omitted
21.11.2019 12:21:39.814 *ERROR* [JobHandler: /var/workflow/instances/server0/2019-11-20_1/WatchFolderAccess_8:/etc/fd/watchfolder/staging/MyWatchFolderWW/Px5c673c5c78d80ec4164368a8] com.adobe.granite.workflow.core.job.JobHandler Error executing workflow step
com.adobe.granite.workflow.WorkflowException: Process execution resulted in an error
at com.adobe.granite.workflow.core.job.HandlerBase.executeProcess(HandlerBase.java:201) [com.adobe.granite.workflow.core:2.0.240]
at com.adobe.granite.workflow.core.job.JobHandler.process(JobHandler.java:260) [com.adobe.granite.workflow.core:2.0.240]
at org.apache.sling.event.impl.jobs.JobConsumerManager$JobConsumerWrapper.process(JobConsumerManager.java:502) [org.apache.sling.event:4.2.12]
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.startJob(JobQueueImpl.java:293) [org.apache.sling.event:4.2.12]
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.access$100(JobQueueImpl.java:60) [org.apache.sling.event:4.2.12]
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl$1.run(JobQueueImpl.java:229) [org.apache.sling.event:4.2.12]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: com.adobe.granite.workflow.WorkflowException: Exception while importing data
at com.adobe.fd.workflow.internal.common.AEMFDWorkflowProcess.execute(AEMFDWorkflowProcess.java:81) [com.adobe.aemfd.adobe-aemfd-workflow-process:5.0.70]
at com.adobe.granite.workflow.core.job.HandlerBase.executeProcess(HandlerBase.java:195) [com.adobe.granite.workflow.core:2.0.240]
... 8 common frames omitted