【开源项目笔记:platform-wechat-mall】linux下 自定义管理员角色查询商品列表为空

随着项目逐步完善,一些自带bug渐渐露出了尾巴:)

本次的问题是:linux下 自定义管理员角色查询商品列表为空,而本地Windows下查询正常。

1 查看网页反馈信息

查询请求上报后,服务器返回的错误是“500 内部异常,请联系管理员”。

都内部异常了,日志里肯定该有记录,查看一下:

cd /usr/local/platform/logs
vi info.log

然而,日志里啥错误信息也莫得,这不禁让人想起了曾经记录过的问题:
linux下 部分模块Log4j日志不输出
不会异常记录模块也是linux下日志不能输出吧?

2 解决linux日志输出异常错误

查看 RRExceptionHandler.java,还真就是同一个坑 :),改吧:

原代码:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
……
public class RRExceptionHandler {
    private Logger logger = LoggerFactory.getLogger(getClass());
    ……
    }

修改后:

import org.apache.log4j.Logger;
……
public class RRExceptionHandler {
    protected Logger logger = Logger.getLogger(getClass());
    ……
    }

再次部署war,用自定义管理员角色查询商品列表。

3 解决linux 查询商品列表为空

这次日志里有错误轨迹记录了:

SQL: select dept_id from sys_role_dept where role_id IN (SELECT role_id FROM SYS_USER_ROLE WHERE user_id =  ?)
### Cause: java.sql.SQLSyntaxErrorException: Table 'platform-shop.SYS_USER_ROLE' doesn't exist
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table 'platform-shop.SYS_USER_ROLE' doesn't exist

划重点:Table ‘platform-shop.SYS_USER_ROLE’ doesn’t exist。
emm……,果然是大小写的问题又来了吗?
在Centos Tomcat 下部署Web项目中,我们在部署war项目之前修改了一个地方

修改表schedule_job的名称为SCHEDULE_JOB

原因就是linux区分大小写会导致数据库读不到正确的表格。现在熟悉的朋友又回来了:)。

查看数据库,果然table名是 sys_user_role。
查找“SYS_USER_ROLE”,出现在SysRoleDeptDao.xml


修改为


再次部署war,用自定义管理员角色查询商品列表,ok!

出现过的错误更容易再次出现,古人诚不我欺!

That’s all!Thank you!

你可能感兴趣的:(【开源项目笔记:platform-wechat-mall】linux下 自定义管理员角色查询商品列表为空)