【问题标题】:Publish workspace from Author instance to public将工作区从作者实例发布到公共
【发布时间】:2016-08-03 11:43:28
【问题描述】:

我得到了新创建的 Magnolia 实例。我尝试通过捆绑的 groovy 脚本创建应用程序并将新闻发布到公共实例。我收到了这个错误

发生这种情况是因为“ebtnews”工作空间未从作者同步到私人。那么问题是如何将工作空间从作者同步到私人?

【问题讨论】:

    标签: magnolia


    【解决方案1】:

    每次我在我的作者实例的模块定义 xml 中添加一个新的工作区时,我都会确保我也在我的公共实例的模块定义 xml 中添加了这个工作区。然后需要重新启动作者和公共实例才能创建新的工作区。

    【讨论】:

      【解决方案2】:

      或者,您可以通过 groovy 控制台/脚本运行以下命令:

      // create workspace
      Components.getSingleton(RepositoryManager.class).createWorkspace(app_repository, app_workspace)
      // check we registered all right
      appSession = ctx.getJCRSession(app_workspace)
      // register node type
      nodeTypeManager = appSession.getWorkspace().getNodeTypeManager()
      type = NodeTypeTemplateUtil.createSimpleNodeType(nodeTypeManager, app_node_type, Arrays.asList(NodeType.NT_HIERARCHY_NODE, NodeType.MIX_REFERENCEABLE, NodeTypes.Created.NAME, NodeTypes.Activatable.NAME, NodeTypes.LastModified.NAME, NodeTypes.Renderable.NAME))
      nodeTypeManager.registerNodeType(type, true)
      appSession.save()
      // double check it registered all right
      nodeTypeManager.getNodeType(app_node_type)
      

      您还需要为工作区注册基本安全权限,在订阅者工作区映射下设置它以启用激活,并可能在公共实例上更新内容时从触发器列表中包含/排除它以刷新缓存。

      您可以在 groovy 模块的 createAppScript 示例脚本中找到执行所有这些操作的代码。我上面粘贴的代码实际上来自同一个脚本。

      优点是您可以在运行时完成所有这些操作而无需重新启动。缺点是您需要在每个实例上运行相同的代码。

      【讨论】:

        猜你喜欢
        • 2023-03-22
        • 2018-01-10
        • 1970-01-01
        • 1970-01-01
        • 2016-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多