Получение 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 напрямую. Мондриан позаботится об этом за вас.