[saiku] 连接 mondrain 数据源出错-空指针错误

时间:2022-03-02 19:29:37

我的个亲娘,这个问题查半天终于查出来了。

一开始以为是配置的mysql的location连接有问题,各种修改啊各种尝试,还是不行。

好死不死报了空指针错误,让人无法下手。

后来发现是这样子的:

生成schema文件使用到的mondrain_3.5.jar的版本和项目运行库lib里使用的jar的版本mondrain_4.3.jar不一致
因此在项目运行去获取jar的时候,找不到当时这个schema文件创建时的Driver
导致在getConnection的时候出错

解决方式:
1)使用运行的jar(version_4.3)重新生成schema文件替换原来的schema文件
2)将运行库里面的jar换成低版本的3.5的

最终我们使用了第二种方式,替换jar

然后发现项目编译出错,原因是3.5的版本导入进来以后,saiku项目里面本身调用了一些4.3高版本的方法找不到了。
没关系,注释掉这些报错的代码就可以了

SaikuMondrianHelper.java
// try {
// return ((RolapBaseCubeMeasure) m.member).getMeasureGroup().getName();
// }
// catch(Exception e){
// return null;
// }

DimensionLookup.java
public static boolean getHanger(RolapCubeDimension dim) {
// 解决3.5和4.0+的版本差异
// return dim.hanger;
return true;
}

这时候再启动本项目,运行查看,完美的展现出来了~