`
jacky6024
  • 浏览: 80604 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

基于J2EE的OLAP应用——表现层JPivot介绍与使用

阅读更多

 

HOME

JPivot 是一套自定义的 JSP 标签,它可以用来显示一个 OLAP 表格,可以用来实现 OLAP 当中的类似切片、切块、向上钻取、向下钻取等典型操作,它采用 Mondrian 作为 OLAP Server JPivot 也支持 XMLA 类型的数据源。

How to run

下载 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 的例子可以通过这种方式配置进行使用。

Using JDBC driver

jPivot 在运行期间可以通过其提供的 JSP 标签 <jp:mondrianQuery …> 里的数据库连接参数来访问数据库,当然该标签当中还包括 MDX 查询语句。自带的 JSP 例子当中是通过访问 /WEB-INF/queries 目录下的配置好的 MS Access 数据库实现的,默认情况下 MySQL 版本的访问被注释了。当然你也可以通过修改源文件的方式来使用其它类型的数据库。

Using J2EE DataSource

你也可以使用预先定义好的 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>


How to compile

发布的版本当中包括编译好的二进制版本和源文件, 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

How to use in another web application?

解压 war 文件,在你的应用当中你需要下面的这些文件:

/wcf/**

/jpivot/**

/WEB-INF/wcf/**

/WEB-INF/jpivot/**

/WEB-INF/lib/**

最后你还需要对比 jpivot.war 里的 web.xml 文件去修改你自己的 web.xml 文件。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics