编译bi-platform-assembly/manual_assembly.xml下的assemble目标获得bi-platform-assembly/manual-stage目录,在manual-stage目录的build.xml中包括了所需要的的各种目标(target),在这里我们编译所有build-all
配置Quartz ($PENTAHO_HOME/pentaho-solutions/system/quartz/quartz.properties)的时候:
1)配置方言:
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
2)将方言库copy到对应的位置
#copy quartz-all-1.5.2.jar(该quartz版本对应pentaho bi 1.7) 到pentaho.war/WEB-INF/lib/目录下,并将原有quartz-1.5.2.jar删除
当然也可以考虑保留原有的jar,将quartz-oracle-1.5.2.jar(只有一个专门针对oracle的方言类)复制到lib目录
中
在quartz.properties中
3)在quartz.properties中主要使用的一个叫myDS的数据源,该数据源指向应用容器jndi数据源,原有配置为:
org.quartz.dataSource.myDS.jndiURL = java:Quartz
所以在容器中配置Quartz数据源,此处为JBoss,Quartz数据源定义在:jboss发布目录的Quartz-ds.xml中
#移除pentaho.ear/lib中的bsh-*.jar和gwt-dev-linux.jar文件这两个文件导致bsh自动部署gwt-dev*.jar里面包含了一个servlet类,导致容器的servlet类冲突
二、
注意在sessionStartupActions.xml中删除不需要自动启动的actions
修改quartz.properties
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
修改system/hibernate/hibernate-settings.xml 文件 将内容改为符合oracle10g的内容
<config-file>system/hibernate/hibernate-jboss-managed.xml</config-file>
<managed>true</managed>
将oracle10g.hibernate.cfg.xml 复制到/WEB-INF/classes目录下面 取代原有的hibernate.cfg.xml
修改system/hibernate/oracle10g.hbm.xml将内容改为符合oracle10g的内容
<mapping resource="hibernate/oracle10g.hbm.xml" />
修改applicationContext-acegi-security-jdbc.xml文件
修改applicationContext-acegi-security-hibernate.properties文件
配置pentahoObjects.spring.xml中的内容修改ISolutionRepository内容,选择是通过文件还是数据库方式来存储solution
bsh的自动执行是因为jboss在部署ear的时候,ear中的bsh-1.3.0.jar和ear一块被解压缩开,由于jboss默认情况下,会自动执行*.bsh文件,因此导致这个现象的出现
编译Pentaho BI 的各种版本
首先在bi-platform-assembly目录下面,选择assembly.xml,编译其assemble目标,然后会得到一个manual-stage目录,在这个目录下的build.xml中有各种target组合
根据甘老师提供的说明试着一步步进行,终于发布成功,不过还有很多问题需要进一步解决……
注:发布过程中jboss为jboss-4.2.3.GA oracle为10G