[Mondrian] begining with olap4j

Julian Hyde jhyde at pentaho.com
Mon Jun 22 11:47:41 EDT 2009


When faced with an error stack, you should look for the error message and
google it. This is the error:
 
NoClassDefFoundError: org/apache/commons/pool/ObjectPool
 
And google tells you that  you need to put commons-pool.jar on your path.
 
Julian



  _____  

From: Kezern [mailto:kezern at gmail.com] 
Sent: Monday, June 22, 2009 8:43 AM
To: jhyde at pentaho.com
Cc: Mondrian developer mailing list
Subject: Re: [Mondrian] begining with olap4j


Hi Julian,
Thanks for your answer. I have made some changes following your
instructions.
I have a postgresql database and a cuble defined into mondrian in a xml
file.
Now my code is as follows:
        Class.forName("mondrian.olap4j.MondrianOlap4jDriver");
        OlapConnection connection =
            (OlapConnection) DriverManager.getConnection(
 
"jdbc:mondrian:Jdbc=jdbc:postgresql://localhost:5432/CdM_db;JdbcUser=postgre
s;JdbcPassword=Tbcrkpi47a8;" +
 
"Catalog=/descargas/apache-tomcat-5.5.27/webapps/mondrian-embedded/WEB-INF/q
ueries/tickets4.mondrian.xml;" +
            "Role='California manager'");
        OlapWrapper wrapper = (OlapWrapper) connection;
        OlapConnection olapConnection = (OlapConnection)
wrapper.unwrap(OlapConnection.class);
        OlapStatement statement = olapConnection.createStatement();

And I get this error:
Exception in thread "main" mondrian.olap.MondrianException: Mondrian
Error:Internal error: Error while creating connection pool (with URI
jdbc:postgresql://localhost:5432/CdM_db)
    at
mondrian.resource.MondrianResource$_Def0.ex(MondrianResource.java:785)
    at mondrian.olap.Util.newInternal(Util.java:1435)
    at
mondrian.rolap.RolapConnection.createDataSource(RolapConnection.java:396)
    at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:173)
    at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:117)
    at mondrian.olap.DriverManager.getConnection(DriverManager.java:110)
    at mondrian.olap.DriverManager.getConnection(DriverManager.java:74)
    at
mondrian.olap4j.MondrianOlap4jConnection.<init>(MondrianOlap4jConnection.jav
a:111)
    at
mondrian.olap4j.FactoryJdbc3Impl$MondrianOlap4jConnectionJdbc3.<init>(Factor
yJdbc3Impl.java:110)
    at
mondrian.olap4j.FactoryJdbc3Impl.newConnection(FactoryJdbc3Impl.java:30)
    at
mondrian.olap4j.MondrianOlap4jDriver.connect(MondrianOlap4jDriver.java:109)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at olap.App.main(App.java:22)
Caused by: java.lang.NoClassDefFoundError:
org/apache/commons/pool/ObjectPool
    at
mondrian.rolap.RolapConnection.createDataSource(RolapConnection.java:392)
    ... 11 more

What I'm doing wrong?


2009/6/19 Julian Hyde <jhyde at pentaho.com>


Your connect string is wrong. Something like

jdbc:mondrian:Datasource=jdbc/SampleData;Catalog=./foodmart/FoodMart.xml;

or

jdbc:mondrian:Jdbc=jdbc:mysql://localhost/foodmart;JdbcUser=foodmart;JdbcPas
sword=foodmart;Catalog=./foodmart/FoodMart.xml;

Always starts 'jdbc:mondrian:' if you're using the mondrian olap4j driver,
or 'jdbc:xmla:' if you're using the XMLA driver.

Then you need 'Datasource=' or, more commonly, 'Jdbc=' to give it the URL of
the underlying database.

Other options for the mondrian driver are documented here:

http://mondrian.pentaho.org/documentation/configuration.php#Connect_string_p
roperties


Julian



> -----Original Message-----
> From: mondrian-bounces at pentaho.org
> [mailto:mondrian-bounces at pentaho.org] On Behalf Of Kezern
> Sent: Friday, June 19, 2009 12:30 AM
> To: mondrian at pentaho.org
> Subject: [Mondrian] begining with olap4j
>
> Hi all,
> I have just started with mondrian and olap4j. I'm trying to
> build a java
> class which connects to my mondrian and extract some data.
> I have deployed the mondrian-embedded.war into my tomcat and
> I have made
> some test with jpivot.
> Now I'm building the new class in eclipse following the
> instrucions of
> the olap4j functional specifications.
> I have written this class.
>
> package olap;
>
> import java.sql.DriverManager;
> import java.sql.SQLException;
> import org.apache.log4j.Logger;
>
> import org.olap4j.*;
>
> public class App
> {
>     public static void main( String[] args ) throws
> ClassNotFoundException, SQLException
>     {
>         System.out.println( "Hello World!" );
>         Class.forName("mondrian.olap4j.MondrianOlap4jDriver");
>         OlapConnection connection =
>             (OlapConnection) DriverManager.getConnection(
>
> "jdbc:mondrian:local:jdbcURL=jdbc:odbc:MondrianFoodMart;" +
>             "Catalog=/WEB-INF/queries/FoodMart.xml;" +
>             "Role='California manager'");
>         OlapWrapper wrapper = (OlapWrapper) connection;
>         OlapConnection olapConnection = (OlapConnection)
> wrapper.unwrap(OlapConnection.class);
>         OlapStatement statement = olapConnection.createStatement();
>
> //        OlapResult result =
> //            statement.execute(
> //                "SELECT {[Measures].[Unit Sales]} ON COLUMNS,\n" +
> //                "  {[Product].Members} ON ROWS\n" +
> //                "FROM [Sales]");
>     }
> }
>
> And I get this error when the class tries to make de connection:
> Exception in thread "main" mondrian.olap.MondrianException: Mondrian
> Error:Internal error: Connect string
> 'local:jdbcURL=jdbc:odbc:MondrianFoodMart;
> Catalog=/WEB-INF/queries/FoodMart.xml; Role=California manager' must
> contain either 'Jdbc' or 'DataSource'
> I have been looking for a solution but I couldn't find one.
> Thanks every body.
>
>
>
>
> _______________________________________________
> Mondrian mailing list
> Mondrian at pentaho.org
> http://lists.pentaho.org/mailman/listinfo/mondrian
>
>
>




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.pentaho.org/pipermail/mondrian/attachments/20090622/a05b90ec/attachment.html 


More information about the Mondrian mailing list