Pentaho BI Server的启动过程详解(一)

最近在群里大家都在讨论Pentaho BI Server 的一些问题,但是大家对于Pentaho BI Server在启动时都做了些什么并不是十分了解,在这里我就来和大家聊一聊这个过程。

软件和版本

Pentaho BIServer 5.0.1-ce

几个重要的类

Pentaho BI Server默认使用的是Tomcat服务器,所以这里你需要对JavaWeb应用以有Tomcat有一定的了解,下面是在Tomcat启动时调用了它们进行Pentaho BI Server 做初始化:
SpringEnvironmentSetupListener
HsqldbStartupListener
ContextLoaderListener
SolutionContextListener
PentahoSystem

它们都做了什么

SpringEnvironmentSetupListener 它的作用很简单,找到系统的系统目录并将该目录配置到环境变量中(默认值为:biserver-cepentaho-solutionssystem 配置到以PentahoSystemPath为key的环境变量中)
HsqldbStartupListener 根据web.xml中的配置将Hsqldb启动,Pentaho BI Server 的运行默认依赖这个数据库,来保存系统的一些基本配置信息,你也可以将它迁移到Mysql中(之前的文章有说明怎么迁移)
ContextLoaderListener 读取web.xml中的contextClass配置项将其实例化,读取web.xml中的contextConfigLocation配置项将其配置内容加载到contextClass配置的类对象中(具体值可以看web.xml文件)

注:PentahoSolutionSpringApplicationContext 继承XmlWebApplicationContext将重写了getResourceByPath方法所以Spring默认加载的文件都会到系统目录下去找(biserver-cepentaho-solutionssystem),这一步完成后所有配置在xml中的类都会被Spring实例化(具体看system目录下的pentaho-spring-beans.xml)

SolutionContextListener 这个类很关键它调用了PentahoSystem类将所有的Pentaho BI Server相关的初始化工作都在该类中完成。
PentahoSystem 这个类非常的重要,所有的初始化工作都在这里完成,它还管理Pentaho BI Server的各个组件等。

结束语

OK 今天这部分的讲解就到这里,下一篇会着重讲一下PentahoSystem这个类是怎么管理Pentaho BI Server的。

本人接触Pentaho时间不长如果文中有错误望高手指出谢谢!
如果对文中有疑问请联系我
我的Email:zhaizhisheng@sina.com
我的博客:http://blog.csdn.net/zhaizhisheng
下期预告:Pentaho BI Server的启动过程详解(二)

另外也欢迎大家加入 下面的群来聊一聊 开源BI那些事!
开源BI交流
开源BI交流
这里写图片描述

推荐文章

更改Magento CMS主页

更改Magento CMS主页

推荐文章

Hibernate4下没有消息记录,只有'org.hibernate.internal公司.CoreMessageLogger_$logger'

Hibernate4下没有消息记录,只有'org.hibernate.internal公司.CoreMessageLogger_$logger'

推荐文章

Sencha触摸图:如何处理酒吧柱上的点击?

Sencha触摸图:如何处理酒吧柱上的点击?

推荐文章

在HTTP服务器中,“每个连接一个线程”的优点是什么?

在HTTP服务器中,“每个连接一个线程”的优点是什么?

推荐文章

升级到iOS 5的iPad1应用程序内存不足

升级到iOS 5的iPad1应用程序内存不足

推荐文章

用于iPhone和HTTP实时流媒体的实时视频聊天

用于iPhone和HTTP实时流媒体的实时视频聊天

推荐文章

ActiveRecord查找至少包含一个项的类别

ActiveRecord查找至少包含一个项的类别

推荐文章

UIImageView调用方法CGRect。我该怎么做?

UIImageView调用方法CGRect。我该怎么做?

推荐文章

杀叉子杀父母?

杀叉子杀父母?

推荐文章

REPL中的Require()似乎无法正常工作

REPL中的Require()似乎无法正常工作

推荐文章

BHO与Explorer Bar之间的通信

BHO与Explorer Bar之间的通信

推荐文章

如何在apachehttpcomponents中使用自定义socketfactory

如何在apachehttpcomponents中使用自定义socketfactory

推荐文章

情况如何org.restlet.ext圭斯?

情况如何org.restlet.ext圭斯?

推荐文章

CSS框架框架设计目标?

CSS框架框架设计目标?

推荐文章

如何在StreamingMarkupBuilder使用的闭包中添加节点

如何在StreamingMarkupBuilder使用的闭包中添加节点

推荐文章

我的快捷键坏了

我的快捷键坏了