Magnolia社区版WAR发布模块空指针异常及公共实例配置求助
解决Magnolia CMS Public实例配置与内容发布问题
一、修复Publishing模块的NullPointerException
异常根源:Author实例未配置任何发布目标,导致Publishing App初始化时数据源为空。按以下步骤配置发布目标:
- 登录Author实例Admincentral(默认
http://localhost:8080/magnoliaAuthor),打开Configuration app - 导航到
/modules/publishing-core/config/publishingReceivers,右键添加新节点:- 名称:
public,节点类型:mgnl:publishingReceiver
- 名称:
- 为该节点添加属性:
enabled:Boolean类型,值truename:String类型,值Public Instanceurl:String类型,值http://localhost:8080/magnoliaPublic/.magnolia/admincentral(匹配你的Public实例地址)user:String类型,值superuserpassword:String类型,值superuser
- 保存配置后重启Author实例,Publishing App即可正常打开。
二、配置并运行Public实例
基于Tomcat Bundle配置
你下载的bundle中public文件夹为空是默认行为,按以下步骤初始化:
- 复制bundle中
webapps/magnoliaAuthor文件夹,重命名为webapps/magnoliaPublic - 修改
webapps/magnoliaPublic/WEB-INF/web.xml:- 全局替换所有
magnoliaAuthor为magnoliaPublic - 确保
magnolia.bootstrap.samples.path参数值包含/samples/public(例如/samples/author,/samples/public)
- 全局替换所有
- 修改
webapps/magnoliaPublic/WEB-INF/config/default/magnolia.properties:- 设置
magnolia.contextPath=/magnoliaPublic - 设置
magnolia.webapp=public - 设置
magnolia.authorInstance=false
- 设置
- 启动Tomcat,访问
http://localhost:8080/magnoliaPublic,完成初始化(默认账号密码superuser/superuser)
通过WAR包部署Public实例
- 复制
magnolia-community-demo-webapp.war为magnoliaPublic.war,部署到Tomcatwebapps目录 - 启动Tomcat待WAR解压后停止服务,按上述bundle配置步骤修改
webapps/magnoliaPublic下的web.xml和magnolia.properties - 重启Tomcat完成初始化
三、验证内容发布
- 在Author实例编辑任意页面,点击工具栏Publish按钮
- 选择已配置的
Public Instance作为目标,确认发布 - 访问Public实例对应页面,验证内容是否同步更新
内容的提问来源于stack exchange,提问作者Patriot
相关产品推荐
相关产品推荐

