我在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
我曾尝试通过互联网提供各种选项,但似乎无法正常工作..有人可以在这里帮助。
答案 0 :(得分:0)
您正在将关系连接展开为olap连接。这永远不会奏效。我假设您尝试通过olap4j使用Mondrian并使用Postgres的连接来提供它。
我建议你花一点时间回到基础。阅读此olap4j tutorial。
简而言之,您需要创建与Mondrian的JDBC连接。在创建此连接时,您还将传递参数以指示Mondrian如何连接到Postgres。您将从您身边获得的连接将无法进入OlapConnection。您不直接创建与Postgres的连接。蒙德里安会为你照顾它。