Java 从org.h2.jdbc.jdbc连接获取olap4j.olap连接

Java 从org.h2.jdbc.jdbc连接获取olap4j.olap连接,java,jdbc,h2,olap4j,Java,Jdbc,H2,Olap4j,有没有办法从org.h2.jdbc.jdbc连接获取olap4j.OlapConnection 现在我正在尝试如下所示: 但是我有一个 线程主java.lang.ClassCastException中的异常: 无法将org.h2.jdbc.jdbc连接转换为org.olap4j.OlapWrapper 在myprogram.mainMondrian2H2Test.java:67 :67为OlapWrapper wrapper=OlapWrapper conn 编辑: 我也试过: Class.fo

有没有办法从org.h2.jdbc.jdbc连接获取olap4j.OlapConnection

现在我正在尝试如下所示:

但是我有一个

线程主java.lang.ClassCastException中的异常: 无法将org.h2.jdbc.jdbc连接转换为org.olap4j.OlapWrapper 在myprogram.mainMondrian2H2Test.java:67

:67为OlapWrapper wrapper=OlapWrapper conn

编辑:

我也试过:

Class.forName("org.h2.Driver");
Class.forName("mondrian.olap4j.MondrianOlap4jDriver");
Connection conn = DriverManager.getConnection("jdbc:h2:~/test;", "sa", "");
OlapConnection olapConn = conn.unwrap(OlapConnection.class);
因此:

线程主java.lang.AbstractMethodError中出现异常: org.h2.jdbc.JdbcConnection.java/lang/Class;Ljava/lang/Object; 在myprogram.mainMondrian2H2Test.java:46

:46是OlapConnection olapConn=conn.unwapolapConnection.class

看看和,代码似乎是:

import java.sql.Connection;
import java.sql.DriverManager;
import org.olap4j.OlapConnection;

Class.forName("mondrian.olap4j.MondrianOlap4jDriver");
Connection conn = DriverManager.getConnection(
    "jdbc:mondrian:" + 
    "Jdbc=jdbc:h2:~/test; " +
    "JdbcUser=sa; " +
    "JdbcPassword=; " +
    "Catalog=file:/mondrian/demo/FoodMart.xml; " +
    "JdbcDrivers=org.h2.Driver");
OlapConnection olapConn = conn.unwrap(OlapConnection.class);
看看和,代码似乎是:

import java.sql.Connection;
import java.sql.DriverManager;
import org.olap4j.OlapConnection;

Class.forName("mondrian.olap4j.MondrianOlap4jDriver");
Connection conn = DriverManager.getConnection(
    "jdbc:mondrian:" + 
    "Jdbc=jdbc:h2:~/test; " +
    "JdbcUser=sa; " +
    "JdbcPassword=; " +
    "Catalog=file:/mondrian/demo/FoodMart.xml; " +
    "JdbcDrivers=org.h2.Driver");
OlapConnection olapConn = conn.unwrap(OlapConnection.class);

这对我来说是正确的。蒙德里安绝对可以传递空密码。我觉得这很正确。蒙德里安绝对可以传递空密码。