Content management system 如何从外部环境以编程方式创建cq5页面?

Content management system 如何从外部环境以编程方式创建cq5页面?,content-management-system,aem,Content Management System,Aem,我们计划从其他cms创建一个CQ5网站,根据要求它有appx 1000个页面。手动创建页面和编写内容需要大量时间。因此我们决定为每个模板编写实用程序来创建页面和编写内容 可以使用WCMAPI在CQ5中编写实用程序。但我想从外部环境,即CQ5之外的环境来实现这一点。我已经编写了代码,但是我无法在java main中获取ResourceResolver对象,因为它显示空指针异常 请给我一个方法来实现这一点,将不胜感激 只要经过身份验证的用户具有所需的权限,您就可以通过向CQ实例发送帖子来创建新页面。

我们计划从其他cms创建一个CQ5网站,根据要求它有appx 1000个页面。手动创建页面和编写内容需要大量时间。因此我们决定为每个模板编写实用程序来创建页面和编写内容

可以使用WCMAPI在CQ5中编写实用程序。但我想从外部环境,即CQ5之外的环境来实现这一点。我已经编写了代码,但是我无法在java main中获取ResourceResolver对象,因为它显示空指针异常


请给我一个方法来实现这一点,将不胜感激

只要经过身份验证的用户具有所需的权限,您就可以通过向CQ实例发送帖子来创建新页面。说明了可以做什么

这里有一个小例子

curl -u admin:admin \
 -F"jcr:primaryType=cq:Page" \
 http://localhost:4502/content/geometrixx/en/index

curl -u admin:admin \
 -F"jcr:primaryType=cq:PageContent" \
 -F"sling:resourceType=geometrixx/components/homepage" \
 -F"jcr:title=My new Homepage" \
 http://localhost:4502/content/geometrixx/en/index/jcr:content
创建新页面及其jcr:content节点。创建组件也是如此

另一种方法是,用XML创建所需的内容结构并导入它

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0"         
    xmlns:cq="http://www.day.com/jcr/cq/1.0" 
    xmlns:jcr="http://www.jcp.org/jcr/1.0"
    jcr:primaryType="cq:Page">
  <jcr:content
      cq:lastModified="{Date}2015-03-09T21:05:46.442Z"
      cq:lastModifiedBy="admin"
      jcr:primaryType="cq:PageContent"
      jcr:title="My new Homepage"
      sling:resourceType="geometrixx/components/homepage"/>
</jcr:root>


使用,您可以通过编程方式创建内容并轻松地将其部署到服务器上。

好的,您必须首先访问JCR存储库


通过发出经过身份验证的请求,您可以将数据保存到CQ。我建议使用JCROM或sling模型来创建DAO和模型,然后执行post请求以将数据保存在JCR中。您也可以在保存数据的过程中使用工作流。

感谢您的回复。我希望创建一个页面,将各个组件与内容一起放置在parysys中。谢谢。但我认为创建页面不起作用模板路径是必需的。当您知道刚刚设置的模板路径是一个属性时,以及当您知道使用template/x/y/z构建页面时,如何使用layouts创建多个parsy。但是当你拥有所需的信息时,没有理由认为它不起作用。在以前的项目中,我们用这种方式进行了很多内容迁移,效果非常好。通过curl本身,我应该将组件放在parsys中。不,你没有领会我的意思。可以通过cURL、XML导入、JSON导入等方式创建内容。您需要考虑的唯一方面是正确的结构。其余的是文本,您必须创建文本。例如,XML可能还包含一个parsys节点,其中包含一个图像组件。感谢您的回复。我希望创建一个页面,将各个组件与内容一起放置在parysys中。