0

在我们的项目中,有一个要求,当我们单击父页面上的推出时,它将触发一个工作流程,一旦批准者批准工作流程,它将自动或以编程方式更新 Live Copy(区域设置)。

为此,我们使用以下代码(在代码中添加 [1]、[2]、[3]、[4])

@Override
public void execute(WorkItem workItem, WorkflowSession workflowSession, MetaDataMap args) throws WorkflowException {

   try {
      ResourceResolverTemplate.execute(DAM_SERVICE, resolver -> {
      if (workItem.getWorkflowData().getMetaDataMap().get("rollout_status").toString().equals("approved")) {

         WorkflowData workflowData = workItem.getWorkflowData();
         Map<String, Object> params = new HashMap<>();
         for (Entry<String, Object> entry : workflowData.getMetaDataMap().entrySet()) {
            if (entry.getKey().contains("-")) {
               // replacing '-' with ':' for properties having colon eg msm:targetPath,
               // msm:async.
               params.put(entry.getKey().replaceFirst("-", ":"), entry.getValue());
            } else {
               params.put(entry.getKey(), entry.getValue());
            }
         }

         [1]HttpServletRequest req = requestResponseFactory.createRequest("POST", "/bin/wcmcommand", params);
         [2]ByteArrayOutputStream out = new ByteArrayOutputStream();
         [3]HttpServletResponse response = requestResponseFactory.createResponse(out);
         [4]requestProcessor.processRequest(req, response, resolver); 
         //rollout
       }
    });
   } catch (Exception e) {
      log.error("Dentsply rollout process step exception: {}", e.getMessage());
   }
}

我能够获得 req[1] 和 response[3] 但在最后一步 [4] requestprocessor.processRequest 它正在中断。

相同的功能在我们的本地环境中运行良好,但在云中却出现了问题。

所以我在这里问的是 AEM 云中的 SlingRequestProcessor 支持吗?因为一旦代码进入下面的步骤并尝试执行 processRequest() ,我就在调试模式下进行了检查,没有任何反应。

我无法使用 processRequest() 方法以编程方式推出页面,我们还有其他选择吗?

4

0 回答 0