2

olap4j.OlapConnectionからを取得する方法はありorg.h2.jdbc.JdbcConnectionますか?

現在、私はこれを試しています(そこに示されているように):

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);

しかし、私は

スレッド「メイン」の例外 java.lang.ClassCastException: org.h2.jdbc.JdbcConnection を myprogram.main(Mondrian2H2Test.java:67) で org.olap4j.OlapWrapper にキャストできません

: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.unwrap(Ljava/lang/Class;)Ljava/lang/Object; myprogram.main (Mondrian2H2Test.java:46) で

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

4

1 に答える 1

4

MondrianOlap4jDriver javadocsメーリング リストを見ると、コードは次のようになります。

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);
于 2012-05-25T15:38:34.417 に答える