JPivot 是一套自定义的 JSP 标签,它可以用来显示一个 OLAP 表格,可以用来实现 OLAP 当中的类似切片、切块、向上钻取、向下钻取等典型操作,它采用 Mondrian 作为 OLAP Server 。 JPivot 也支持 XMLA 类型的数据源。
下载 jpivot-[version].zip 文件,并且将其解压得到 jpivot.war 文件,将该文件放置到 tomcat 的 webapps 目录下。
在编写 Mondrian 文件时,请确认使用了缓存,这样在运行时将会大大提高缓存。例如,设置环境变量 JAVA_OPTS=-Xms256m –Xmx512m ,这样可以得到 256m 高速缓存和 512m 的临时峰值缓存。
在运行 Tomcat 时请确认您使用了 1.4 及以上版本的 JDK 和 4.1.30 及以上版本的 Tomcat 。启动 Tomcat 后,打开浏览器输入 http://localhost:8080/jpivot ,可以看到相关界面。
这里有一些不需要使用数据库的例子,但是,你可能需要使用数据库来查看例子,此时您可以下载 MondrianFoodMart-Access.zip 文件,并且设置名为 MondrianFoodMart 的 ODBC 数据源,该数据源使用 MS Access Database ,并且关联到下载到的 MondrianFoodMart.mdb 文件。 Jpivot 的例子可以通过这种方式配置进行使用。
jPivot 在运行期间可以通过其提供的 JSP 标签 <jp:mondrianQuery …> 里的数据库连接参数来访问数据库,当然该标签当中还包括 MDX 查询语句。自带的 JSP 例子当中是通过访问 /WEB-INF/queries 目录下的配置好的 MS Access 数据库实现的,默认情况下 MySQL 版本的访问被注释了。当然你也可以通过修改源文件的方式来使用其它类型的数据库。
你也可以使用预先定义好的 JDBC DataSource 来运行你的 MDX 查询,如:
<jp:mondrianQuery
id="query01"
dataSource="jdbc/JPivotDS"
catalogUri="/WEB-INF/demo/FoodMart.xml">
MDX goes here
</jp:mondrianQuery>
|
这个名为“ jdbc/JPivotDS ”的数据源是在 Tomcat 中定义的,具体的定义文件可以查看相关文件,如下面的代码中定义了这个数据源:
<Context path="/jpivot" docBase="C:\dev\jpivot\build\web" debug="0"
reloadable="true" crossContext="true">
<Resource auth="Container" name="jdbc/JPivotDS"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/JPivotDS">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>400</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>tarzan</value>
</parameter>
<parameter>
<name>password</name>
<value>jane</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/foodmart?autoReconnect=true</value>
</parameter>
</ResourceParams>
</Context>
|
在 web.xml 当中我们还要设置对该数据源的引用:
<Context path="/jpivot" docBase="C:\dev\jpivot\build\web" debug="0"
reloadable="true" crossContext="true">
<Resource auth="Container" name="jdbc/JPivotDS"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/JPivotDS">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>400</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>tarzan</value>
</parameter>
<parameter>
<name>password</name>
<value>jane</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/foodmart?autoReconnect=true</value>
</parameter>
</ResourceParams>
</Context>
|
发布的版本当中包括编译好的二进制版本和源文件, jpivot.war 文件下的 /WEB-INF/lib 目录下的所有 .jar 文件都是需要编译的,最简单的方式是设置编译环境。
<!-- [if !supportLists]-->1. <!-- [endif]-->解压 jpivot.war 文件到一个临时目录下,并更名为 jpivot.zip
<!-- [if !supportLists]-->2. <!-- [endif]-->从事 /WEB-INF/lib 目录下复制所 jpivot.jar 文件以外的所有的 .jar 文件到 lib 目录
现在你可以用 ant 来编译 JPivot ,编译之前你可能需要修改 ant 的属性文件 build.properties 。
catalina.home=c:/java/jakarta-tomcat-4.1.30
mysql.home=c:/java/mysql-connector-java-3.0.8-stable
xalan.home=c:/java/xalan-j_2_6_0
|
解压 war 文件,在你的应用当中你需要下面的这些文件:
/wcf/**
/jpivot/**
/WEB-INF/wcf/**
/WEB-INF/jpivot/**
/WEB-INF/lib/**
最后你还需要对比 jpivot.war 里的 web.xml 文件去修改你自己的 web.xml 文件。