在pentaho的程序中定义的启动listener为SolutionContextListener
他也是主要的启动程序代码,其启动过程会自动查询解决方案,查询解决方案位置的步骤如下:
1)首先查询web.xml中配置的solution-path,这个值指向一个目录,如果存在,此目录为解决方案目录(也就意味着一个web应用只能包含一个方案)
一般配合如下(相当于没有配置)
<context-param>
<param-name>solution-path</param-name>
<param-value></param-value>
</context-param>
2)如果1没有查询到,然后会查询默认目录,不过默认目录是研发的目录,一般不存在这这个目录,查询的目录如下
/eclipse/workspace/pentaho-solutions
/eclipse/workspace/pentaho-samples/solutions/test-solution
3)如果2指定的目录页不存在,那就从web应用目录开始逐级上相查询“pentaho-solutions”目录,找到了直接返回。(其中pentaho-solutions是直接代码种写死的名称)
由此得出,一般情况下不会再web.xml种配置,因为这样程序的移植性比较差,移植一次需要修改web。xml,不建议这样使用。那一般只能扩展方式3,在web应用的上层目录中保存方案,这种方案比较不好的就是文件夹的名字是固定死的,太死板,以后可以考虑自定义。