Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

配置问题

代码生成器图片、附件组件提示undefined/upload/…

规范项目名路径变量,参考下图路径head-file文件,在src/main/webapp/WEB-INF/manager/include/下创建head-file文件

将会在5.4.4版本更新处理

Alt text

并添加ms.contextpath变量定义

...
    ms.base = "${base}";
    // 添加ms.contextpath
    ms.contextpath = "${base}"; 
    ms.login = "${managerPath}/login.do";
    ms.manager = "${managerPath}";
    ms.web = ms.base;
...

yml配置问题

自定义ms.manager.path和ms.manager.login-path问题

  1. 修改ms.manager.path 不能修改为cms、mcms等和web层接口重名冲突的名称
  2. 修改login-path 需要有一个登录地址和配置的login-path对应上 Alt text

部署多个相同的后台服务,同一浏览器同时登录多个服务会掉线问题

Alt text

多个服务的cookie-name需做区分,不相同就行

swagger文档

  • 开启swagger:修改yml中,springfox.documentation.auto-startup和springfox.documentation.enabled为true

  • 关闭swagger和api-doc:修改yml中springfox.documentation.auto-startup为false Alt text

Tip

注意:不同版本间的配置项可能存在差异,建议参考对应版本的 application.yml 配置的注释说明

上传的文件可能存在攻击处理

eg:上传html存在js攻击

Alt text

解决方式:通过yml配置中upload.denied添加html,禁止html上传

Alt text

启动报java.nio.charset.MalformedInputException: Input length = 2

产生原因:中文字符导致

快速解决方法,将yml中的中文注释全部删除

规范:禁止使用文本编辑器来修改配置文件,避免导致编码问题;推荐在ide中修改好

需要让标签生成域名解析为https

代理应用时标签解析域名依旧为http时,首先需要确认yml配置中 ms.scheme为https,然后应用设置保存、刷新缓存,再重新静态化。 Alt text

添加项目名后预览页面404,页面路径缺少项目名

出现这种情况可能是用户部署在Tomcat上加了项目名,没有在yml文件里配置,需要在yml里也进行配置, 并确保和Tomcat上项目名一致。 Alt text

Tip

由于添加了项目名称,在模板中所有涉及资源的引入路径(如js、css文件、图片等)也应该加上项目名称,即加上标签:{ms:global.contextpath/} Alt text

复制富文本图文,更换上下文后导致图片不显示问题

上下文:在这里指项目名称,默认为 /

第一步:通过编辑器的查看源代码功能,确定当前内容中图片路径是(上下文)/upload格式,否则说明图片没有上传成功。

第二步:由于图片链接是作为文本数据存在数据库中的,由于更换了上下文,导致原来的存储的图片路径在新的上下文中链接失效。可以写个脚本把数据库中新、旧上下文进行replace

超过1分钟,显示数据库链接超时

可以延长数据库最大等待时间,修改yml中spring.datasource.druid.maxWait的配置 Alt text

百度编辑器上传图片一直在加载

将yml中ms.upload.enable-web设置为true Alt text

模板文件太大 或 通过tinymce上传的文件太大 造成上传失败

问题:上传文件过大导致异常,修改application.yml文件,调整最大上传文件大小 Alt text

Alt text

pom.xml配置问题

页面静态资源丢失、部分页面访问404

在pom.xml中排除了静态资源和WEB-INF页面,未编译导致的问题

注意:excludes配置推荐在打包时开启,本地开发需要注释

Alt text

站群插件未生效

站群的依赖需要放到pom文件中依赖的第一位,因为站群插件重写了basic, 不放在第一位可能会导致站群不生效的情况。 Alt text

自定义配置问题

请求地址:http://localhost:8080/xxx/cms/content/list.do 当前操作存在sql注入风险,bad sql word:xxxxxx

因为修改了yml中的ms.manager.path,需要同步修改 安全设置 》 XSS过滤器配置中把ms替换成修改后的ms.manager.path

Alt text

Tip

注意,修改xss后需要重启服务才生效

sql注入问题,xss配置说明

MCms因为后台后台一些业务必须要使用到 ${} 来动态构建SQL语句,导致一些检测误认为系统存在 SQL 注入问题,实际上系统对请求的参数都已经做SQL 注入检测,只需要开启就可以防止注入问题。

  1. 开源版本开启配置参考

先更新到最新版本,删除排除路径中有关/ms/**,/**此类路径,也可以单独设置排除路径

开源xss配置

  1. 其他版本开启配置参考

启用xss过滤器,并删除排除路径中有关/ms/**/**此类路径,也可以单独设置排除路径

政务版xss配置

排除路径:添加排除路径后,则不会对该请求的参数做xss校验

排除字段:请求中的某个参数会触发xss,将触发xss的请求参数添加到排除字段中,则不会对该请求参数做xss校验

Tip

由于自定义会有动态修改表的操作和关键字,如果上线后仍需要使用自定义相关功能,建议加上/ms/mdiy/**的配置;其他功能添加配置和自定义一样

业务数据配置问题

定时调度任务执行失败

通常是由于任务没有正确配置参数导致的,例如生成首页,

调用目标:generaterServiceJob.index(‘index.htm’,‘index.html’,‘outsite’,‘http://localhost/’)

这里第一个参数’index.htm’指的是对应模板文件; 第二个参数’index.html’指的是主页文件名; 第三个参数’outsite’指的是自定义字典中设置模板类型数据值; 最后一个参数’http://localhost/’指的是调用本机。 需注意第三个参数填写正确,选择正确的模板类型。

更换域名后页面仍然显示ip地址

页面标签 {ms:global.url/}、{ms:global.host/}是从 APP 表中取地址字段进行渲染。 第一步:确认当前用域名登录后台,然后只需要在应用设置里保存一下,不需要做任何操作就可以更新地址字段。 第二步:确认 APP 表中地址字段app_url修改成域名,然后重新静态化。 第三步:确保静态化操作没问题,刷新页面就可以了(没效果强刷下页面)。

Tip

简单调试办法,首页模板只留{ms:global.url/}、{ms:global.host/},查看输出结果是否正确。 注意:若出现文章点击数失效的问题,在缓存管理里刷新缓存重新静态化即可。

idea配置问题

启动系统后台部分页面报404错误原因分析

情况1. 代码可能没有编译,重新clean,compile

判断是否编译小技巧:debug模式启动项目,打断点,只有圆圈没有勾,没有编译 Alt text

情况2. 地址正确,对应的页面资源缺少,按需补充视图文件 Alt text

情况3. pom依赖下排除了src/main/webapp目录文件,注释就行 Alt text

情况4. 如果你代码是最新的,那应该是你数据库导入错了,直接导入最新版本的数据就可以了

idea使用Tomcat开发,上传模板重启后模板消失

因为是上传到Tomcat内置的环境,重启Tomcat默认清理所有文件导致文件消失,解决方案:

  1. 开发过程中模板直接放在项目中,不要通过上传的方式放进去
  2. 上传的模板可以在重启之前,从Tomcat里面复制出来到项目中

启动时报缺少某个类,创建bean对象失败

可能是没有编译到,先重新clean、compile试一下,还是不行的话那就清除下idea缓存再maven强制更新一下

idea Tomcat 配置

启动es依赖报找不到org.elasticsearch.xcontent.ToXcontent0bject的类文件错误

解决方法

  1. 删除在该仓库下的org.elasticsearch文件夹
  2. maven配置中央仓库拉取依赖(不能使用阿里云镜像,尽量使用国外的)
  3. 重新拉取依赖,在仓库中找到es相关依赖并且版本对应
  4. idea中刷新一下maven

启动报错error creating bean with name “customMultipartResolver”.

  • 情况1 第一次启动报错

    解决办法

    1. 删除在该仓库下的net.mingsoft文件夹
    2. maven配置中央仓库,重新拉取依赖(不能使用阿里云镜像!)
  • 情况2 jar启动报错

    1. 首先看本地ide启动是否正常,本地不正常请参考情况1
    2. 把config文件中的配置与ide中resource文件夹下的同步

修改config配置未生效

config配置以mcms下的配置为标准,它会覆盖其他配置导致出现修改配置没有生效的问题。

mysql8.0驱动报错

需要使用jdk8 以上版本

包有错误且中文是乱码

项目右键属性窗口,配置项目编码格式为UTF-8