从AEM6.1升级到AEM6.3后,工作流程步骤失败

时间:2017-08-07 19:43:26

标签: aem

我们刚刚从AEM6.1升级到6.3。我正在尝试执行工作流但收到以下错误 -

07.08.2017 15:20:21.233 *ERROR* [sling-threadpool-cc7c6ae7-7243-4db2-9490-b0810d422592-(apache-sling-job-thread-pool)-282-Granite Workflow Queue(com/adobe/granite/workflow/job/etc/workflow/models/content-request-for-deletion/jcr_content/model)] com.adobe.granite.repository.impl.SlingRepositoryImpl Bundle com.adobe.granite.workflow.core is NOT whitelisted to use SlingRepository.loginAdministrative
07.08.2017 15:20:21.233 *ERROR* [sling-threadpool-cc7c6ae7-7243-4db2-9490-b0810d422592-(apache-sling-job-thread-pool)-282-Granite Workflow Queue(com/adobe/granite/workflow/job/etc/workflow/models/content-request-for-deletion/jcr_content/model)] com.adobe.granite.workflow.core.job.JobHandler Error executing workflow step
java.lang.RuntimeException: Error logging in as service user
    at com.adobe.granite.workflow.core.util.ServiceLoginUtil.getWorkflowPayloadSession(ServiceLoginUtil.java:82)
    at com.adobe.granite.workflow.core.util.ServiceLoginUtil.getWorkflowPayloadWorkflowSession(ServiceLoginUtil.java:127)
    at com.adobe.granite.workflow.core.job.JobHandler.process(JobHandler.java:203)
    at org.apache.sling.event.impl.jobs.JobConsumerManager$JobConsumerWrapper.process(JobConsumerManager.java:500)
    at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.startJob(JobQueueImpl.java:291)
    at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.access$100(JobQueueImpl.java:58)
    at org.apache.sling.event.impl.jobs.queues.JobQueueImpl$1.run(JobQueueImpl.java:227)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: javax.jcr.LoginException: Bundle com.adobe.granite.workflow.core is NOT whitelisted
    at org.apache.sling.jcr.base.AbstractSlingRepository2.loginAdministrative(AbstractSlingRepository2.java:378)
    at com.adobe.granite.workflow.core.util.ServiceLoginUtil.getWorkflowPayloadSession(ServiceLoginUtil.java:76)
    ... 9 common frames omitted

我是否需要创建服务用户?我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

您会发现有用的链接https://issues.apache.org/jira/browse/SLING-5135 loginAdministrative是一个不推荐使用的方法,你仍然可以使用它,虽然在6.3中添加了额外的安全级别,所以为了能够使用它你需要创建一个OSGi配置 org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment更多信息here

答案 1 :(得分:0)

当我们尝试通过Aem 6.3或更高版本中的管理服务访问资源解析器时,会发生此问题...您可以通过以下方式删除此错误

Apache Sling服务用户映射器服务

enter image description here

此配置中有两个选项: 服务映射:可以在此处使用服务映射配置。 您可以这样配置: Bundle-Symbolic-Name:捆绑服务[可选] =系统用户名

默认用户:如果没有与捆绑相对应的服务映射,则捆绑将选择默认用户并将其用作服务身份验证用户。因此,如果您不想提供任何服务映射,则可以使用默认用户选项。但这不是特定于捆绑软件的。

  1. Apache Sling服务用户映射器修订

enter image description here

当您要为特定项目设置单独的配置时,使用他的配置。  如果有多个配置与特定捆绑包相对应,则可以根据排名选择服务(编号最高的将具有最高的排名)。

新的loginService方法

现在引入了新方法来代替loginAdministrative方法: ResourceResolver getServiceResourceResolver(Map authenticationInfo)抛出LoginException; 会话loginService(String serviceInfo,String工作区)抛出LoginException,RepositoryException;

注意:每个使用ResourceResolverFactory或SlingRepository服务的捆绑包实际上都会获得一个绑定到使用捆绑包的实例。该捆绑包用于标识服务。