获取org.postgresql.util.PSQLException:方法org.postgresql.jdbc4.Jdbc4Connection.unwrap(Class <t>)尚未实现</t>

时间:2014-06-11 19:38:31

标签: java postgresql mondrian olap4j

我在tomcat中的server.xml中设置了数据源,如下所示

<Context
    docBase="C:/Java_WS/GIT WS/reportingsuite/reporting-api/target/reporting-api-0.0.1-SNAPSHOT"
    path="" reloadable="true">

    <Resource name="jdbc/postgres" 
        auth="Container"  
        provider="mondrian"
        type="javax.sql.DataSource" 
        driverClassName="org.postgresql.Driver"
        jdbcdrivers="mondrian.olap4j.MondrianOlap4jDriver"
        Catalog="C:\Java_WS\GIT WS\reportingsuite\reporting-api\src\main\webapp\WEB-INF\Schema1.xml" 
        url="jdbc:postgresql://localhost:5432/postgres"
        username="postgres" 
        password="password" 
        maxActive="20" 
        maxIdle="10"
        maxWait="-1" 
        accessToUnderlyingConnectionAllowed="true" />
</Context>

使用以下java代码获取数据源并尝试创建olapconnection ..

Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/postgres");
this.connection = ds.getConnection();
this.olapConnection = connection.unwrap(OlapConnection.class);

在最后一行获得异常..

org.postgresql.util.PSQLException: Method org.postgresql.jdbc4.Jdbc4Connection.unwrap(Class<T>) is not yet implemented

我曾尝试通过互联网提供各种选项,但似乎无法正常工作..有人可以在这里帮助。

1 个答案:

答案 0 :(得分:0)

您正在将关系连接展开为olap连接。这永远不会奏效。我假设您尝试通过olap4j使用Mondrian并使用Postgres的连接来提供它。

我建议你花一点时间回到基础。阅读此olap4j tutorial

简而言之,您需要创建与Mondrian的JDBC连接。在创建此连接时,您还将传递参数以指示Mondrian如何连接到Postgres。您将从您身边获得的连接将无法进入OlapConnection。您不直接创建与Postgres的连接。蒙德里安会为你照顾它。