Obțineți olap4j.OlapConnection de la o org.h2.jdbc.JdbcConnection

Există o modalitate de a obține o olap4j.OlapConnection de la o org.h2.jdbc.JdbcConnection ?

În acest moment încerc acest lucru (după cum se arată acolo ):

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

Dar am un a

Excepție în firul "principal" java.lang.ClassCastException:   org.h2.jdbc.JdbcConnection nu poate fi distribuit la org.olap4j.OlapWrapper     la myprogram.main (Mondrian2H2Test.java:67)

: 67 este OlapWrapper wrapper = (OlapWrapper) conn;

EDIT :

De asemenea, am încercat acest lucru:

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

Cu acest rezultat:

Excepție în firul "principal" java.lang.AbstractMethodError:   org.h2.jdbc.JdbcConnection.unwrap (Ljava/lang/Clasa;) Ljava/lang/obiect;     la myprogram.main (Mondrian2H2Test.java:46)

: 46 este OlapConnection olapConn = conn.unwrap (OlapConnection.class);

0

1 răspunsuri

Privind la MondrianOlap4jDriver javadocs și la lista de discuții , codul pare a fi:

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);
0
adăugat
Mulțumiri! Am eliminat remarca despre parola acum.
adăugat autor Thomas Mueller, sursa
Asta mi se pare drept. Mondrian poate transmite cu siguranță parole goale.
adăugat autor Julian Hyde, sursa