【转】mondrian+jpivot源码导入eclipse并配置数据源

导入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 :)

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

时间: 2024-10-14 00:06:14

【转】mondrian+jpivot源码导入eclipse并配置数据源的相关文章

Hadoop源码导入Eclipse

需要进一步学习hadoop.需要看看内部源码实现,因此需要将hadoop源码导入都eclipse中,简单总结一下,具体步骤如下: 首先确保已经安装了git.maven3.protobuf2.5.如果没有安装需要提前安装一下 1.下载hadoop源码 git clone git://git.apache.org/hadoop-common.git 2.进入hadoop-common目录,用maven生成eclipse工程 mvn install -DskipTests mvn eclipse:ec

spring源码解析——spring源码导入eclipse

一.前言     众所周知,spring的强大之处.几乎所有的企业级开发中,都使用了spring了.在日常的开发中,我们是否只知道spring的配置,以及简单的使用场景.对其实现的代码没有进行深入的了解.开卷有益,在我们空闲的时间里面阅读一下spring的源码,对提升我们的自身能力还是还有很大的帮忙.下面总结一下spring源码导入eclipse的具体的操作. 二.spring的特点 spring的的核心就是IOC(控制反转)和AOP(基于切面的编程) 事务管理方面采用了:声明式事务 为各种主流

tomcat源码导入eclipse

1. 获取源代码 方式一:从官网http://tomcat.apache.org/download-70.cgi 直接下载,官网提供了Binary 和 Source Code两种下载方式,要研究tomcat源代码,选择最下面的source code 方式下载 方式二:利用svn获取源代码,先安装svn,再新建目录tomcat7, 接着在目录里用 svn执行以下命令 svn co http://svn.apache.org/repos/asf/tomcat/tc7.0.x/tags/TOMCAT_

将Spring源码导入eclipse步骤

深入学习spring,研读源码是必须的~ 1.到https://github.com/spring-projects/spring-framework/releases去找自己需要的spring版本,并下载压缩包. 2.解压缩,如果在windows下,首先执行gradlew批处理程序,成功后,再执行import-into-eclipse批处理程序.根据不同的网络情况,经过一段时间,运行完毕后,可以看到源码的文件结构已经符合eclipse的格式了. 3.在eclipse中,导入源码文件夹即可. 将

Tomcat源码导入eclipse的步骤

Tomcat源码导入eclipse 一.下载源码 1.  进入Apache 官网:http://tomcat.apache.org/ 2.  在左边侧选择要下载的源码的版本. 3.  或者直接通过Archives进入源码目录 4.  源码目录如图,选择需要的版本, 5.  进入相应的源码目录下载相应的源码,我的演示下载的是8.026版本的源码. 二.ANT编译源码 如果没安装ant,请先安装ant,ant是一款编译工具. 编译步奏: 1.  解压源码压缩包 2.  设置依赖包的下载位置,把上步解

如何将OpenTSDB源码导入eclipse

OpenTSDB的官网上介绍了如何将OpenTSDB源码导入eclipse,官方链接,但步骤超级繁琐,还有一个简便方法,下面以导入OpenTSDB2.0.0为例. 1. 下载OpenTSDB2.0.0代码 wget https://codeload.github.com/OpenTSDB/opentsdb/tar.gz/v2.0.0 2. 解压并进入源码目录 tar zxf v2.0.0 cd opentsdb-2.0.0/ 3. 生成pom.xml文件 ./build.sh pom.xml 4

如何将struts源码导入eclipse

预制条件和spring源码导入eclipse中一样,下面直接给出导入eclipse的步骤. 步骤: 1. 下载struts相应版本的源码 http://struts.apache.org/download.cgi .我这里下载的是struts-2.3.16-all.zip.下载完成后解压到本地目录. 2. struts的源码是通过maven管理的,所以需要下载maven http://maven.apache.org/download.cgi .下在完成后同样解压到本地目录,然后配置MAVEN_

tomcat源码导入eclipse步骤

1. 获取源代码 方式一:从官网http://tomcat.apache.org/download-70.cgi 直接下载,官网提供了Binary 和 Source Code两种下载方式,要研究tomcat源代码,选择source code 方式下载 方式二:利用svn获取源代码,先安装svn,再新建目录tomcat7, 接着在目录里执行以下命令 [java] view plaincopy svn co http://svn.apache.org/repos/asf/tomcat/tc7.0.x

weka源码在eclipse的配置和VerifyError异常的解决

今天把weka源码导入eclipse,打算学习下weka源码,遇到一些问题,网上资料不足,自己总结下,希望为后来人铺路. 1)新建java项目,命名weka3-6 2)把weka-src.jar解压,再把src\main\java\weka文件拽到项目的src目录 3)把weka-src\lib目录的三个jar包引进 运行main函数出现VerifyError异常,如下: java.lang.VerifyError: Expecting a stackmap frame at branch ta