首页 > 解决方案 > 使用自定义工作流更新节点属性 AEM

问题描述

我试图更新 DAM 资产的元数据,使用自定义工作流程添加新的属性值。下面的代码在 execute() 方法中运行良好。

 Resource metadata = resourceResolver.getResource(resourcePath);
        ModifiableValueMap properties = metadata.adaptTo(ModifiableValueMap.class);
        properties.put("360 degree", "true");

        try {
            metadata.getResourceResolver().commit();
        } catch (PersistenceException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

未创建如下更新代码的属性值。

  Resource metadata = resourceResolver.getResource(resourcePath);  
  Node metanode = metadata.adaptTo(Node.class);
        try {
            metanode.setProperty("360 degree", "true", PropertyType.BOOLEAN);
        } catch (RepositoryException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

我错过了什么吗?

标签: javaaem

解决方案


我猜你忘记打电话了javax.jcr.Session#save

但是在 AEM 中工作时不应使用 JCR api,如果可能,请使用 Sling API 甚至更高级别的 api(尤其是 wcm)。


推荐阅读