一、编译bi-platform-assembly/manual_assembly.xml下的assemble目标
获得bi-platform-assembly/manual-stage目录,在manual-stage目录的build.xml中包括了所需要的的各种目标(target)
编译build.xml,编译后manual-stage/bulid目录如下:
二、配置bulid/pentaho-ears/jboss/no-protal/oracle10g/pentaho.ear
1)将pentaho.ear以及里面的war包全部解压,已方便修改。并且将pentaho.ear发布到jboss(要用jboss4.2.3,对于jboss4.2.0的会出现hibernate错误)下。
2)将方言库copy到对应的位置
copy quartz-all-1.5.2.jar(该quartz版本对应pentaho bi 1.7) 到pentaho.ear//lib/目录下,并将原有quartz-1.5.2.jar删除。
当然也可以考虑保留原有的jar,将quartz-oracle-1.5.2.jar(只有一个专门针对oracle的方言类)复制到pentaho.ear/lib目录中
3)在quartz.properties中主要使用的一个叫myDS的数据源,该数据源指向应用容器jndi数据源,原有配置为:
org.quartz.dataSource.myDS.jndiURL = java:Quartz
所以在容器中配置Quartz数据源,此处为JBoss,Quartz数据源定义在:jboss发布目录的Quartz-ds.xml中
修改pentaho.ear/PentahoHibernate-ds.xml和quartz-ds.xml中的数据库连接
4)移除pentaho.ear/lib中的bsh-*.jar和gwt-dev-linux.jar文件这两个文件导致bsh自动部署。
bsh的自动执行是因为jboss在部署ear的时候,ear中的bsh-1.3.0.jar和ear一块被解压缩开,由于jboss默认情况下,会自动执行*.bsh文件,因此导致这个现象的出现)。
gwt-dev*.jar里面包含了一个servlet类,导致容器的servlet类冲突
5)将oracle驱动ojdbc.jar复制到pentaho.ear/lib目录下
6)修改pentaho.ear/pentaho.war/WEB-INF/web.xml,指向正确的pentaho-solutions路径,本机修改后如下
<context-param>
<param-name>solution-path</param-name>
<param-value>D:/pentaho/pentaho-solutions</param-value>
</context-param>
三、配置$PENTAHO_HOME/pentaho-solutions
1、配置方言:Quartz /system/quartz/quartz.properties
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
2、注意在sessionStartupActions.xml中删除不需要自动启动的actions
3、
a)修改pentaho-solutions/system/hibernate/hibernate-settings.xml 文件 将内容改为符合oracle10g的内容
<config-file>system/hibernate/oracle10g.hibernate.cfg.xml</config-file>
<managed>false</managed>
b)将oracle10g.hibernate.cfg.xml 复制到/WEB-INF/classes目录下面 取代原有的hibernate.cfg.xml,并修改oracle10g.hibernate.cfg.xml中数据库连接
c)修改system/hibernate/hibernate-jboss-managed.xml 将内容改为符合oracle10g的内容
<mapping resource="hibernate/oracle10g.hbm.xml" />
d)修改applicationContext-acegi-security-jdbc.xml文件
e)修改applicationContext-acegi-security-hibernate.properties文件
4、配置pentahoObjects.spring.xml中的内容修改ISolutionRepository内容,选择是通过文件还是数据库方式来存储solution
四、创建用户和表,启动jboss服务
运行$PENTAHO_HOME /data/oracle10g/下的sql文件创建用户和表以及表空间
在启动jboss服务前,先启动$PENTAHO_HOME/data/start_hypersonic.bat(因为要使用hsql中的SamplyDate数据库)
启动jboss服务,访问http://localhost:8080/pentaho
bug
Quartz的实现过程中自主尝试使用jdbc 事务回滚,而在managed datasource的模式下,这导致问题,因为managed datasource不允许应用程序自主回滚???
在Quartz.properties中配置用jobStore解决这个问题 修改294开始