2013-07-31 52 views
1

我在mondrian和sql server的幫助下構建了一個模式文件。Mondrian Olap ClassNotFoundException:mondrian.olap4j.MondrianOlap4jDriver

現在我正在使用olap4j編寫數據庫連接的Java代碼。

代碼是:

try { 
     Class.forName("mondrian.olap4j.MondrianOlap4jDriver"); 
        String connectionString1 = "type=OLAP name=sales driver=mondrian.olap4j.MondrianOlap4jDriver location=jdbc:mondrian:Jdbc=jdbc:sqlserver://serverName:1433;database=TempDatabase;Catalog=C:/Schema1.xml;JdbcDrivers=com.microsoft.sqlserver.jdbc.SQLServerDriver username=sa [email protected]"; 
        Connection jdbcConnection = DriverManager.getConnection(connectionString1); 
        OlapConnection connection = ((OlapWrapper)jdbcConnection).unwrap(OlapConnection.class); 
    OlapStatement olapStatement = connection.createStatement(); 

    } catch (SQLException e) { 
      e.printStackTrace(); 
    }catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } 

但是,這是給我的錯誤,同時運行代碼:

java.lang.ClassNotFoundException: mondrian.olap4j.MondrianOlap4jDriver 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at com.tuto.Test.main(Test.java:16) 

我使用下列jar:

1.asm.jar 
2.asm-commons.jar 
3.asm-tree.jar 
4.javacup.jar 
5.olap4j-1.0.0.445.jar 
6.olap4j-xmla-1.0.0.445.jar 
7.retroweaver.jar 
8.retroweaver-rt.jar 
9.sqljdbc.jar 
10.xercesImpl.jar 
11.olap4j-tck-1.0.0.445.jar 

請幫我爲什麼我得到這個錯誤?

謝謝。

回答

0

你正在嘗試使用Mondrian的olap4j實現,但是Mondrian不在你的類路徑中。您將不得不下載Mondrian及其依賴項。

此外,您可以刪除以下庫。如果你使用olap4j的JDK4版本

  • 的Retroweaver的* .jar
  • olap4j-TCK
  • olap4j-XMLA

的運行時的Retroweaver只有必要的。 olap4j-tck僅在您實施olap4j驅動程序並想測試時纔有用。

另請注意,您的連接網址相當混亂。我很確定它不起作用。你應該檢查基本code examples provided here讓你開始。

0

如果您正在使用Maven,這裏是我用來獲取依賴它的工作:

<dependency> 
     <groupId>org.olap4j</groupId> 
     <artifactId>olap4j</artifactId> 
     <version>1.1.0</version> 
    </dependency>  
    <dependency> 
     <groupId>pentaho</groupId> 
     <artifactId>mondrian</artifactId> 
     <version>3.2.1.13885</version> 
    </dependency> 
    <dependency> 
     <groupId>eigenbase</groupId> 
     <artifactId>eigenbase-xom</artifactId> 
     <version>1.3.4</version> 
    </dependency> 
    <dependency> 
     <groupId>eigenbase</groupId> 
     <artifactId>eigenbase-properties</artifactId> 
     <version>1.1.4</version> 
    </dependency> 
    <dependency> 
     <groupId>eigenbase</groupId> 
     <artifactId>eigenbase-resgen</artifactId> 
     <version>1.3.5</version> 
    </dependency>   
<dependency> 
    <groupId>commons-pool</groupId> 
    <artifactId>commons-pool</artifactId> 
    <version>1.4</version> 
</dependency> 
<dependency> 
<groupId>commons-dbcp</groupId> 
<artifactId>commons-dbcp</artifactId> 
<version>1.4</version> 
</dependency> 
<dependency> 
<groupId>commons-vfs</groupId> 
<artifactId>commons-vfs</artifactId> 
<version>1.0</version> 
</dependency> 
<dependency> 
<groupId>commons-math</groupId> 
<artifactId>commons-math</artifactId> 
<version>1.2</version> 
</dependency> 
<dependency> 
<groupId>commons-collections</groupId> 
<artifactId>commons-collections</artifactId> 
<version>3.2.1</version> 
</dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
    </dependency> 

以及與此回購:

<repository> 
    <id>pentaho-releases</id> 
    <url>http://repository.pentaho.org/artifactory/repo/</url> 
    </repository>