【轉】mondrian+jpivot源碼匯入eclipse並配置資料來源

來源:互聯網
上載者:User

標籤:

匯入mondrian源碼步驟如下:

 1 ) 下載mondrian-3.0.0.10550 和 jpivot 1.8.0 , mondrian-3.0.0以後的版本 和 jpivot的源碼整合不到一起.  jpivot好久沒更新了!!!!   :http://mondrian.pentaho.com/

 

 2 ) 在eclipse裡建立個web工程, 命名mondrian.

 

 3 ) 解壓mondrian-3.0.0.10550/mondrian-3.0.0.10550-src.zip , 將解壓的內容覆蓋你的工程

 

 4 ) 在ant視圖下運行build.xml檔案的prepare,parser,generate.resources,def四個目標過程(MondrianGuiDef類是通過builder產生的!! 如果builder過程中出現*********找不到subfloor.xml****的錯誤的話 你需要http://code.google.com/p/subfloor/wiki/SubflloorHowTo下載一個subfloor.xml檔案放到bulid.xml同級目錄下)

 

 5 ) 將mondrian-3.0.0.10550/lib/mondrian.war發布包中的WEB-INF/lib中的jar包全部拷貝到Mondrian工程的lib目錄中;

 

 6) 根據編譯的錯誤匯入必要的jar包.

 

注意:1、最後執行ant完成對工程進行清理處理;
2、如果一切正常,之後則不需要用mondrian.jar檔案,可以依此為標準檢測是否構建成功。

 

匯入jpivot源碼步驟如下:

 

直接在你的mondrian工程下建立src/jpivot, 然後將jpivot-1.8.0/src/java的東東考進去就行了, 這個就不細說了

匯入成功後就可以把jpivot.jar刪掉了

 

 

配置資料來源:

 

 一. 使用odbj的方式:

 

      控制台 -> 管理工具 -> 資料來源 (ODBC) -> 點擊添加 -> 選擇driver do microsoft access(*.mdb) -> 下一步 設定資料來源名MondrianFoodMart -> 資料庫選擇(mondrian-3.0.0.10550/demo/access/MondrianFoodMart.mdb)

 

 二. 其它資料庫:

在你的mondrian/web-inf目錄下執行以下命令(斜體字部分需要自己調整下)

java -cp "lib/mondrian.jar;lib/log4j-1.2.8.jar;lib/eigenbase-resgen.jar;lib/commons-logging-1.0.4.jar;lib/eigenbase-xom.jar;lib/eigenbase-properties.jar;lib/mysql.jar" mondrian.test.loader.MondrianFoodMartLoader -verbose -tables -data -indexes -jdbcDrivers=com.mysql.jdbc.Driver -inputFile=lib/FoodMartCreateData.sql -outputJdbcURL="jdbc:mysql://localhost:3306/foodmart?user=root&password=admin"

 

測試下:

 

 1 ) 在你的mondrian工程下,建立一個包含main函數測試類別,建立一個connection:

Connection conn=DriverManager.getConnection(String,BOOl);

測試的String的內容為:

Access:

“Jdbc=jdbc:odbc:MondrianFoodMart;Catalog=file:///D:/workspace /mondrian工程/webapp/WEB-INF/queries /FoodMart.xml;JdbcDrivers=sun.jdbc.odbc.JdbcOdbcDriver; “

在String中定義了資料庫連接的參數,以及Schema檔案的路徑(CataLog)。

注意:

        1 Provider=mondrian這一句是必須的,mondrian產生connection的時候對provider的值進行了單獨的檢查,沒有這一句或者provider為其他值,都會觸發異常;

        2 第二個參數定義CataLog,若在String中已經定義,值為null(記住要把FoodMart.xml拷貝到D:/workspace /mondrian工程/webapp/WEB-INF/queries目錄下);

        3 Mondrian2.x和Mondrian3.x有較大改動,對於getConnection()函數而言,mondrian3.x只有兩個參數,2.x 則有三個參數。
 2 )  定義查詢語句:

String queryStr =”select {[Measures].[Unit Sales]} on columns “+
“from Sales”

注意:查詢語句必須遵守mdx文法;

 3 ) 利用connection產生一個Query對象:

Query query = conn.paseQuery(queryStr);

 4 )  執行查詢得到結果:

Result result = conn.execute(query);

 5 ) 控制台列印結果:

PrintWriter pw = new PrintWriter(System.out);

result.print(pw);

pw.flush();

 

如果以上測試通過說明mondrian以及資料來源配置成功了, 下面配置下jpivot 讓web工程能跑起來:

     1)  開啟mondrian/WebRoot/WEB-INF/queries下的mondrian.jsp, 設定下資料來源什麼的, 看看 你懂的...

     2)  將工程發布到tomcat -> 運行 -> http://localhost:8080/mondrian, 頁面有幾個demo, 其中有幾個連結會報錯,這個是官方的demo有問題,需要我們手動修改下,修改方法如下(修改方法粘貼的網上的):

**************************************************************************************

        1》 (error)          * Various queries formatted using the Mondrian tag-library

在web.xml中找到一下內容

<context-param>
    <param-name>connectString</param-name>
    <param-value>@[email protected]</param-value>
</context-param>

把connectstring修改成如下即可(access連擊使用預設odbc)

<context-param>
    <param-name>connectString</param-name>
    <!-- The Test Of "Various queries formatted using the Mondrian tag-library" -->
<param-value>Provider=mondrian;Jdbc=jdbc:odbc:MondrianFoodMart;Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=sun.jdbc.odbc.JdbcOdbcDriver;</param-value>
</context-param>

2》(error)          * Basic interface for ad hoc queries

在web.xml中找到一下內容

<servlet>
    <servlet-name>MDXQueryServlet</servlet-name>
    <servlet-class>mondrian.web.servlet.MDXQueryServlet</servlet-class>
    <init-param>
      <param-name>connectString</param-name>
      <param-value>@[email protected]</param-value>
    </init-param>
</servlet>

把connectstring修改成如下即可(access連擊使用預設odbc)

<servlet>
    <servlet-name>MDXQueryServlet</servlet-name>
    <servlet-class>mondrian.web.servlet.MDXQueryServlet</servlet-class>
    <init-param>
      <param-name>connectString</param-name>
      <!--The Test Of "Basic interface for ad hoc queries"-->
   <param-value>Provider=mondrian;Jdbc=jdbc:odbc:MondrianFoodMart;Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=sun.jdbc.odbc.JdbcOdbcDriver;</param-value>
    </init-param>
</servlet>

3》(error)          * JPivot pivot table by XMLA

4》(error)          * XML for Analysis tester

上面這兩個可以一起來解決,找到/WEB-INF/datasources.xml,這裡定義了一個DataSource,我們可以再建立一個DataSource

<DataSource>
        <DataSourceName>Provider=Mondrian;DataSource=AccessTest;</DataSourceName>
        <DataSourceDescription>Mondrian FoodMart Data Warehouse</DataSourceDescription>
        <URL>http://localhost:8888/mondrian/xmla</URL> <DataSourceInfo>Provider=mondrian;Local=zh_CN;DynamicSchemaProcessor=mondrian.i18n.LocalizingDynamicSchemaProcessor;Jdbc=jdbc:odbc:MondrianFoodMart;Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=sun.jdbc.odbc.JdbcOdbcDriver;</DataSourceInfo>
        <ProviderName>Mondrian</ProviderName>
        <ProviderType>MDP</ProviderType>
        <AuthenticationMode>Unauthenticated</AuthenticationMode>
        <Catalogs>
            <Catalog name="FoodMart">
                <Definition>/WEB-INF/queries/FoodMart.xml</Definition>
            </Catalog>
        </Catalogs>
    </DataSource>

我們定義了一個叫“AccessTest”的Datasource。接下來開啟/WEB-INF/queries/xmla.jsp,將替dataSource="Provider=Mondrian;DataSource=MondrianFoodMart;"換成dataSource="Provider=Mondrian;DataSource=AccessTest;"即可,因為預設的MondrianFoodMart資料來源是關聯到oracle資料庫的,而我們偷來用了Access :)

****************************************************************************************

【轉】mondrian+jpivot源碼匯入eclipse並配置資料來源

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.