——————————目录大纲——————————
————————————————————————一、问题汇总
1、本地AEM实例启动后,在模板页面展示空白,无法拖拽组件
现象:在装修页面没有对应的Root Container去使用,导致没法拖入选择组件,查看日志发现错误信息:Could not find configuration for domain 'publish'
解决:推荐使用1或者2方式
方法1:系统环境变量中增加配置(推荐)
Mac系统参考:
Windows系统中增加环境变量:


添加以下三个变量:
AEM_EXTERNALIZER_LOCAL http://localhost:4502 AEM_EXTERNALIZER_AUTHOR http://localhost:4502 AEM_LENOVO_EXTERNALIZER_PUBLISH http://localhost:4503
方法2:启动脚本中导入环境变量
启动脚本改为shell脚本,然后通过export引入环境变量:


export AEM_EXTERNALIZER_LOCAL=http://localhost:4502 export AEM_EXTERNALIZER_AUTHOR=http://localhost:4502 export AEM_LENOVO_EXTERNALIZER_PUBLISH=http://localhost:4503
然后windows下可以以gitbash命令行下启动
方法3:直接去configMgr上去修改
缺点是每次打包涉及ui.config,就需要重新手动修改一下
去控制台http://localhost:4502/system/console/configMgr, 然后搜索Day CQ Link Externalizer,找到如下项并单击打开:

按图中的配置,查看是否设置了default默认值,如果没有就修改一下并保存即可解决:
local $[env:AEM_EXTERNALIZER_LOCAL;default=http://localhost:4502] author $[env:AEM_EXTERNALIZER_AUTHOR;default=http://localhost:4502] publish $[env:AEM_LENOVO_EXTERNALIZER_PUBLISH;default=http://localhost:4503] preview $[env:AEM_EXTERNALIZER_PREVIEW]

然后就能看到可以进行正常编辑了:

参考文献:https://experienceleague.adobe.com/zh-hans/docs/experience-cloud-kcs/kbarticles/ka-15275
2、页面没有拖拽组件的地方
现象:如下图所示:

解决:首先去模板查看这块区域的状况:

确定了这里的确有个布局容器:

看到这里的Root Container是锁定的,这时是不允许页面拖拽组件的:

点击锁定按钮,提示是否进行解锁:

也可以解锁对应的layout Container实现局部的解锁(不推荐):

3、编辑页组件没有设置按钮(页面集成逻辑)
3.1 方式一,页面是Live Copies出来的
需要在根节点更新页面,并rollout到当前节点进行更新。
3.2 方式二,直接打断继承
点击组件的这个按钮可以打断继承关系,能在本地进行修改:

同理也能恢复继承
3.2 打断当前页面的继承
在被Live Copy出来的页面的Properties中,选择Live Copy,然后这里可以选择是否要中断继承:

4、编辑页权限
4.1 通过页面设置
选中要设置的页面,点击Properties:

进入Permisss标签,然后可以添加权限,也可以查看现有权限的分配状况:

4.2 设置站点配置


可以通过下面的方式为用户或组增加权限:

也可以点击如下的方式查看目前生效的权限:


4.3 通过分配角色
登录Adobe的https://adminconsole.adobe.com/后台,点击上方users:

这里可以搜索用户
然后可以在对应组下面分配权限:



5、本地调用POST接口403
本地POST接口调用请求403的问题,解决方式(更推荐下面的方式,因为部署到线上还是会面临差不多的问题):https://sourcedcode.com/blog/video-tutorial/how-to-make-simple-http-post-methods-in-aem-with-a-http-rest-client
更正:
这是由于Adobe在author模式下,会对POST、PUT、DELETE接口进行csrf token校验,因此需要在请求的时候携带对应的token才能通过,如果通过组件调用,则需要在组件的clientLibs上指明依赖,如下图:

如果不能通过该形式处理,则需要在请求的时候使用特殊处理,官方文档中也有说明。
6、访问localhost:4502出现404的问题
访问localhost:4502出现404的问题,错误信息org.apache.felix.http.base.internal.dispatch.DispatcherServlet-2554943f:
删除:/author/crx quickstart/repository/segmentstore/repo.lock。
删除:/author/crx-quickstart/launchpad/felix/cache.lock
[可选]如果通过上述两个步骤无法解决问题,则在少数情况下,repoinit文件或Index文件与锁一起是问题的根源。删除/crx quickstart/launchpad/config/org/apache/sling/jcr/repoinit,并删除/crx quickstart/repository/index上可用的索引文件夹,然后尝试重新启动AEM实例。
二、其他关键信息说明
1、代码同步
adobe的git库,不能够直接进行操作,是从lenovo库推送到远程adobe库。
组件各环境的同步依赖于使用git仓库。
flash的头尾在AEM中对应使用experience fragment进行引用。
使用代码去对内容进行变更后,需要通过cloud service后台去同步,CRXDE只是用于检查的。
2、模板依赖
页面能够使用哪些组件依赖于页面的template,template可用组件依赖于设置的模板布局设置的policy。
3、页面Rollout
已经被Rollout的页面不能再被rollout,然后Rollout出来的内容不能进行修改,只能增加。
4、AEM api包说明
AEM api具有包内首选项,按首选项顺序由以下Java™包标识:
com.adobe.cq
com.adobe.granite
com.day.cq
cq包支持产品用例,而com.adobe.granite支持跨产品平台用例,例如工作流或任务(跨产品使用:AEM资产、站点等等)。
com.day.cq包包含“原始”api。这些api解决了在Adobe收购Day CQ之前或前后存在的核心抽象和功能。这些api是受支持的,应该避免使用,除非com. adobec.cq或com. adobec.granite包没有提供(更新的)替代方案。
AEM中集成了非常多的开源软件,同时也对这些开源软件做了一系列的封装,以便提供好用的API供开发者使用。其中以下面四种为主:
| 名称 | 优先级 | 说明 |
|---|---|---|
| AEM | 最高 | AEM中的抽象概念,如页面、资产、工作流等 |
| Sling | 高 | 基于资源的抽象概念,如资源、数据、HTTP请求等 |
| JCR | 中 | 具体数据内容的抽象概念,如节点、属性、会话等 |
| OSGI | 低 | 主要针对服务的抽象,如配置、服务等 |
5、HTL说明
HTL 可能提供的以下效率改进:
- HTML / CSS / JS: 由于 HTML 开发者能够直接编辑 HTL 模板,因此前端设计不必再与 AEM 项目分开实施,而可以直接在实际 AEM 组件上实施。这减少了全栈 Java 开发者所面临的费时费力的迭代工作。
- JSP / HTL: 由于 HTL 本身不需要任何 Java 知识并且可以直接编写,因此任何拥有 HTML 专业知识的开发者都可以编辑模板。
- Java: 由于 HTL 提供的 Use-API 使用起来简单明了,因此明确了与业务逻辑的接口,这也有利于 Java 的整体开发。
HTL文档:https://experienceleague.adobe.com/zh-hans/docs/experience-manager-htl/content/getting-started
6、打包细节
若要生成所有模块,请在项目根目录中运行以下命令,并使用 Maven 3:
mvn clean install
一个正在运行的AEM实例,则可以构建和打包整个项目,然后使用以下方法部署到AEM中:
mvn clean install -PautoInstallSinglePackage
若要将其部署到发布实例,请运行
mvn clean install -PautoInstallPackagePublish
如果是Java类的改动,比如core目录下的,那么需要打包bundle:
mvn clean install -PautoInstallBundle
否则如果是ui.apps或者ui.content这样的,需要打包package:
mvn clean install -PautoInstallPackage
7、页面跳转规则
规则路径:dispatcher/src/conf.d/rewrites/lenovo_www_resources_rewrite.rules
配置均为rewrite规则,该rule会在AEM instance部署的时候自动部署,一旦被部署到云环境中,就不能访问查看配置
8、Lenovo Customer Success Landing Page
JIRA:
EAGLE-12458
-
Getting issue details...
STATUS
9、Analytics Page
Confluence: Adobe Analytics和Assets insights
JIRA:
EAGLE-12455
-
Getting issue details...
STATUS
10、翻译项目Language Project
10.1 区域、语言列表

调用接口:
接口数据来源:
/etc/acs-commons/lists/lenovo/translation/region-list/jcr:content/list |
|---|
11、Dispatcher的软链接问题
涉及软链接的目录,如:
dispatcher/src/conf.d/enabled_vhosts
需要在Linux或者MAC下才能正常生成并提交Git,window下使用wsl也是可以(待验证),否则在部署的时候会报错
2026/03/10 04:17:57 The following suggestions are proposed: /tmp/dispatcher/unzippedConfiguration/conf.d/enabled_vhosts/lenovo_www_preview.vhost: file is not a symlink, all files inside "enabled_vhosts" and "enabled_farms" should be symlinks 2026/03/10 04:17:57 The following errors were found in the httpd config: /tmp/dispatcher/unzippedConfiguration/conf.d/enabled_vhosts/lenovo_www_preview.vhost: appears to be a windows (pseudo) symlink but this OS does not support these. Please commit a correct symlink: ../available_vhosts/lenovo_www_preview.vhost 2026/03/10 04:17:57 The following warnings were found: The ignoreUrlParameters setting is not enabled in the dispatcher farm. It is recommended to implement at least marketing parameters. Please see more information here: https://experienceleague.adobe.com/docs/experience-manager-cloud-service/content/implementing/content-delivery/caching.html?lang=en#marketing-parameters The ignoreUrlParameters setting is not enabled in the dispatcher farm. It is recommended to implement at least marketing parameters. Please see more information here: https://experienceleague.adobe.com/docs/experience-manager-cloud-service/content/implementing/content-delivery/caching.html?lang=en#marketing-parameters The ignoreUrlParameters setting is not enabled in the dispatcher farm. It is recommended to implement at least marketing parameters. Please see more information here: https://experienceleague.adobe.com/docs/experience-manager-cloud-service/content/implementing/content-delivery/caching.html?lang=en#marketing-parameters 2026/03/10 04:17:57 Invalid symlinks found: 2026/03/10 04:17:57 /tmp/dispatcher/unzippedConfiguration/conf.d/enabled_vhosts/lenovo_www_preview.vhost: appears to be a windows (pseudo) symlink but this OS does not support these. Please commit a correct symlink: ../available_vhosts/lenovo_www_preview.vhost The command '/bin/sh -c AZCOPY="/usr/bin/azcopy" VALIDATOR_BINARY="/usr/local/bin/validator" HTTPD_BINARY="/usr/sbin/httpd" DISPATCHER_CONFIGURATION_LOCATION=$dispatcherConfigurationLocation DISPATCHER_CONFIGURATION_DESTINATION=$dispatcherConfigurationDestination DISPATCHER_IMAGE=$dispatcherImage RUN_MODE=$runmode ./validateDispatcherConfiguration.sh' returned a non-zero code: 2 2026/03/10 04:17:58 Container failed during run: validate-dispatcher. No retries remaining. failed to run step ID: validate-dispatcher: exit status 2 Run ID: ca6b1xs failed after 23s. Error: failed during run, err: exit status 1
windows下如果代码目录因为软链接整坏了,那么可以通过下面方式恢复:
## 管理员方式打开git bash ## 删除软链接所在父级目录 ## 执行以下命令 git checkout HEAD enabled_vhosts