Получение org.postgresql.util.PSQLException: метод org.postgresql.jdbc4.Jdbc4Connection.unwrap (Class<T>) еще не реализован

У меня есть настройки источника данных в server.xml в Tomcat, как показано ниже

<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 ответ

Вы разворачиваете реляционное соединение в соединение olap. Это никогда не сработает. Я предполагаю, что вы пытаетесь использовать Mondrian через olap4j и передавать его через соединение от Postgres.

Я предлагаю вам уделить время, чтобы вернуться к основам. Прочитайте этот учебник olap4j.

Короче говоря, вам нужно создать соединение JDBC с Mondrian. При создании этого соединения вы также передадите параметры, чтобы указать Мондриану, как подключиться к Postgres. Соединение, которое вы получите от вашей стороны, будет отключено в OlapConnection. Вы не создаете соединение с Postgres напрямую. Мондриан позаботится об этом за вас.

Другие вопросы по тегам