pentaho1.2 RC2 在tomcat5.5下部署的记录

时间:2023-02-15 11:44:58

参照 qin hui 的文章:http://qinhui99.itpub.net/post/2570/204839

 

首先读pentaho的文档 Pentaho_Advanced_Install_Guide-1.2.0-RC2.pdf中具体的做法。这里只是记录我的做法和出现的问题。

 

说明:我的tomcat装在D:/Program Files/Apache Software Foundation/Tomcat 5.5下

一、按Pentaho_Advanced_Install_Guide-1.2.0-RC2操作

1.将生成的pentaho.war拷贝到webapps下;

2.修改conf目录下的server.xml。在 <Host name="localhost" appBase="webapps"       unpackWARs="true" autoDeploy="true"      xmlValidation="false" xmlNamespaceAware="false"> 下面添加内容

<Context path="/pentaho" docbase="webapps/pentaho/">
<Resource name="jdbc/SampleData" auth="Container" type="javax.sql.DataSource" maxActive="20"
maxIdle="5" maxWait="10000" username="pentaho_user" password="password"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" driverClassName="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:hsql://localhost/sampledata" />
<Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
maxWait="10000" username="hibuser" password="password"
driverClassName="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost/hibernate" />
<Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
maxWait="10000" username="pentaho_user" password="password"
driverClassName="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost/quartz" />
<Resource name="jdbc/Shark" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
maxWait="10000" username="sa" password="" driverClassName="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:hsql://localhost/shark" />
</Context>

3.然后保存,启动数据库,启动tomcat。

可以在http://localhost:8080/pentaho下面访问到没有style和portal的demo。运行hello world和报表例子都正确。但发现在报表例子里面只看到JFreeReport的例子。没有Birt和JasperReport的例子。并且通过url访问也表示没有此xaction! 这点感觉很奇怪,不知道原因。

二、自己配置pentaho到自己的web应用中

第二次,我尝试自己从引用pentaho.jar开始,完全在自己的web应用中加入pentaho。步骤如下:

1.我在d盘根目录新建testapp目录,新建D:/testapp/WEB-INF/lib,放入penthao.jar和所有需要的jar包。

2.在D:/testapp/WEB-INF目录下,拷贝过来jpivot目录,tld目录,wcf目录。(此3目录的作用还不是很明确,有知道的朋友麻烦给我留言告知)。新建calss目录。

3.在D:/testapp/WEB-INF目录下新建web.xml文档。把webapps/pentaho/web-inf目录下的web.xml拷贝过来。

(我的solution目录都是为<context-param>
  <param-name>solution-path</param-name>
  <param-value>F:/pentaho/work/pentaho-solutions</param-value>
 </context-param>)

4.在D:/testapp目录下新建 index.jsp。 放入链接

<a href="ViewAction?&solution=samples&path=getting-started&action=HelloWorld.xaction">hello world</a>
<a href="ViewAction?solution=samples&path=reporting&action=JFree_ChartComponent.xaction">jfreeChart</a>
<a href="ViewAction?solution=samples&path=reporting&action=BIRT-quadrant-budget-for-region-hsql.xaction">birt</a>

5.在tomcat的conf/Catalina/localhost目录下新建testapp文件。

<Context docBase="${catalina.home}/../../../testapp"
         privileged="true" antiResourceLocking="false" antiJARLocking="false" >

   <ResourceLink name="users" global="UserDatabase"
                type="org.apache.catalina.UserDatabase"/>

</Context>
并把这个文件也拷贝到d:/testapp/web-inf目录下。

6.启动数据库,启动tomcat。可以访问http://localhost:8080/testapp/index.jsp  能够正确执行hello world。但是对jfreeReport无法找到数据库,对birt则是找不到xaction!

三、按照qinhui的方法进行配置试验

1.将conf/server.xml还原。

2.在conf/Catalina/localhost目录下新建pentaho.xml,内容为

Context path="/pentaho" docBase="pentaho" debug="99" reloadable="true">

<Logger className="org.apache.catalina.logger.FileLogger"

prefix="pentaho_log." suffix=".txt" timestamp="true"/>

<Resource name="jdbc/SampleData" auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/SampleData">

<parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter>

<parameter><name>maxActive</name><value>20</value></parameter>

<parameter><name>maxIdle</name><value>5</value></parameter>

<parameter><name>maxWait</name><value>10000</value></parameter>

<parameter><name>username</name><value>pentaho_user</value></parameter>

<parameter><name>password</name><value>password</value></parameter>

<parameter><name>driverClassName</name><value>org.hsqldb.jdbcDriver</value></parameter>

<parameter><name>url</name><value>jdbc:hsqldb:hsql://localhost/sampledata</value></parameter>

</ResourceParams>

<Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/Hibernate">

<parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter>

<parameter><name>maxActive</name><value>20</value></parameter>

<parameter><name>maxIdle</name><value>5</value></parameter>

<parameter><name>maxWait</name><value>10000</value></parameter>

<parameter><name>username</name><value>hibuser</value></parameter>

<parameter><name>password</name><value>password</value></parameter>

<parameter><name>driverClassName</name><value>org.hsqldb.jdbcDriver</value></parameter>

<parameter><name>url</name><value>jdbc:hsqldb:hsql://localhost/hibernate</value></parameter>

</ResourceParams>

<Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/Quartz">

<parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter>

<parameter><name>maxActive</name><value>20</value></parameter>

<parameter><name>maxIdle</name><value>5</value></parameter>

<parameter><name>maxWait</name><value>10000</value></parameter>

<parameter><name>username</name><value>pentaho_user</value></parameter>

<parameter><name>password</name><value>password</value></parameter>

<parameter><name>driverClassName</name><value>org.hsqldb.jdbcDriver</value></parameter>

<parameter><name>url</name><value>jdbc:hsqldb:hsql://localhost/quartz</value></parameter>

</ResourceParams>

<Resource name="jdbc/Shark" auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/Shark">

<parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter>

<parameter><name>maxActive</name><value>20</value></parameter>

<parameter><name>maxIdle</name><value>5</value></parameter>

<parameter><name>maxWait</name><value>10000</value></parameter>

<parameter><name>username</name><value>sa</value></parameter>

<parameter><name>password</name><value></value></parameter>

<parameter><name>driverClassName</name><value>org.hsqldb.jdbcDriver</value></parameter>

<parameter><name>url</name><value>jdbc:hsqldb:hsql://localhost/shark</value></parameter>

</ResourceParams>

</Context>

3.启动数据库,tomcat.发现pentaho应用能够执行hello world例子,但访问报表例子的时候报找不到数据库。

4. 我将Context path="/pentaho" docBase="pentaho" debug="99" reloadable="true">中的docBase进行修改,尝试了webapps/pentaho ,${catalina.home}/webapps/pentaho 等配置,也都不行。
 

5.整个测试中,testapp应用中的报表示例始终无法通过jndi找到数据库,正常显示报表。不知道该怎么样给它配jndi。 我把文档 Pentaho_Advanced_Install_Guide-1.2.0-RC2中的<Context path="/pentaho" docbase="webapps/pentaho/">改成 <Context path="/testapp" docbase="../../../testapp/">也还是不行。

以上就是我做的基本工作,希望能和有兴趣的朋友进行交流。