一、前言
最近在搞国外一款开源的内容管理系统opencms,用它实现自定义内容管理及门户站点的发布(案例参考点击更多),通过绑定内容栏目模板,发布站点资源,但是每次都需要在online手动点击相关资源后,才会在导出目录(默认为export)生成资源,这个增加了运维的发布上线复杂度(当然后面可以通过数据库管理的静态导出进行全量发布),之前一直想搞明白通过啥机制出发静态导出的。
二、源码分析
1. 如下图找到web.xml文件,通过404来出发OpenCmsServletErrorHandler静态发布事件
2. 类OpenCmsServletErrorHandler.java处理逻辑,如下所示
3. 父类OpenCmsServlet处理404状态,然后再执行静态导出方法,如下图所示