转-pentato技术白皮书中文版(九)--Pentaho 的手动配置

目录

Pentaho 的手动配置

01. 在你开始前

02. 下载 J2EE Deployment Distribution

04. 配置 Solutions

05. 构建应用 archives

06. 配置应用 Archives

Enabling SSL in Tomcat55 & JBoss

JBoss 4.0.4

改变服务器端口

Tomcat 5.0

Tomcat 5.5

Pentaho 的手动配置

This page last changed on Jan 28, 2007 by bhagan.

为了配置 Pentaho BI 平台,首先你必须有一个 J2EE 兼容的 archive 文件,其包含了平台的所有文件和资源。如果你使用 JBoss 或 Tomcat 作为你的应用服务器,这个指南会帮助你构建 archive。如果你正使用一个不同的应用服务器,你需要编写你自己的 Ant 任务来构建你需要的 archive,并添加特定于你的应用服务器的配置文件。

如果你愿意的话,我们很高兴将你的应用程序服务器的 Ant 任务放进我们的包中。参与 Pentaho 的细节信息请参考 http://www.pentaho.org/contributions。

Pentaho 有一个预配置的 JBoss 应用服务器,其中已经为你配置好了一切。如果想尽快省力的配置运行,我们推荐使用预配置安装包。这个指南为那些想在自己的环境中设置平台的人提供了一种选择。

01. 在你开始前

This page last changed on Jan 30, 2007 by bhagan.

你也需要确保你已经有:

Ø         这个指南需要已经安装了 Java SDK 或 JRE。Pentaho BI 平台在 Java SDK 1.4 上构建和测试过,Java SDK 1.4 的各种平台上的版本可在此处下载http://java.sun.com/j2ee/1.4/download.html#sdk。

Ø         确保环境变量 JAVA_HOME 指向 JDK 被安装的目录。

Ø         这个下载也需要安装了 Apache Ant,开放源码的基于 Java 的构建工具。你将需要 Ant 的 1.6.2 版本或更高。你可从 http://ant.apache.org/ 下载 Ant。

Ø         确保 Ant 的 bin 目录在你的系统 path 上。

02. 下载 J2EE Deployment Distribution

This page last changed on Jan 30, 2007 by bhagan.

J2EE Deployment Distribution 是一个包,允许你为某种应用程序服务器构造多种不同的 web 应用archives 和/或企业应用 archives。到目前为止,我们有构建以下 archives (通过 Ant targets)的脚本:

Ø         Tomcat 5.x .war 文件

Ø         JBoss 4.0.4 .war 文件

Ø         JBoss 4.0.4 .ear 文件

可在 downloads page 上找到这个包,其名为 pentahoj2ee_deployments。

如果你想将之配置到一个没有列出的应用程序服务器时,这也是一个好的起点。你需要的所有 Pentaho 文件均存在于这个包中,你所需要做的就是编写你自己的 Ant target,并添加你的环境必需的配置文件。

我们主要的应用服务器测试环境是 JBoss 4.0.4Pentaho 社区和开发组欢迎各种反馈不管是面临的问题,还是仅仅想让我们知道你成功配置了环境关于在其它应用程序服务器上的配置。请使用 http://forums.pentaho.org 上的论坛共享你的经历。

03. 配置 Sample 数据

This page last changed on Jan 30, 2007 by bhagan.

这很简单。下载和解压你在 Sourceforge 找到的 pentaho_data-<version>.zip 文件。

在资源树的根目录上,你会看见启动和关闭脚本。为启动数据库服务器,运行 start-hypersonic (.bat 用于 Windows,.sh 用于 *nix) 脚本。为停止数据库服务器,运行 stop-hypersonic (.bat 用于Windows,.sh 用于 *nix) 脚本。

建议的目录结构如下:

 /pentaho

/appserver

/pentaho-data

/pentaho-solutions

04. 配置 Solutions

This page last changed on Jan 30, 2007 by bhagan.

你也需要下载和解压在 Sourceforge 找到的 pentaho-solutions-<version>.zip 文件。

Pentaho web 应用将查找你的 pentaho-solutions 目录,只要 pentaho-solutions 目录是 appserver 目录的同级目录。

建议的目录结构如下:

/pentaho

/appserver

/pentaho-data

/pentaho-solutions

可选的 solutions 配置

如果应用不能找到 sample solutions 或如果你想将 sample solutions 放在别处,如 pentaho-solutions 目录不是你的应用服务器的根目录的同级目录,你可输入配置参数指向它。

以下是如何操作的步骤:

1.         抽取 web.xml 文件 (从 .war)。

2.         找到值为 "solution-path." 的 <param-name> 元素。

3.         直接在 <param-name> 元素后,输入一个 <param-value> 元素,将它的值设置成 "pentaho-solutions" 目录的绝对路径即可。

<param-value>d: \ pentaho\ pentaho-solutions</param-value>

然后重新构建 .war 文件。

启动 BI 平台的用户账户需要有在 pentaho-demo/pentaho-solutions/system/content 目录中创建目录和文件的权限。如果 JBoss 被安装为一个服务,启动服务的用户账户也需要有创建权限。

05. 构建应用 archives

This page last changed on Mar 16, 2007 by bhagan.

pentaho.war 和 pentaho.ear

pentaho_j2ee_deployments-<version>.zip 将构建两种不同的 archives - .war 文件或.ear 文件。.ear 文件有在应用服务器上成功运行 Pentaho 平台 demo 和 samples 所必需的所有文件。.war 文件仅仅包含 Pentaho web 应用程序,在这种情况下,在你配置 Pentaho .war 文件后,还有更多要完成的工作。 archives 将运行于 hypersonic 或 mysql 上。因此,必须用你的数据库的 HOST 和PORT 信息来配置许多文件,包括:

Ø         hibernate.cfg.xml

Ø         *-ds.xml 文件 (用于 jboss)

构建过程将基于在 build.properties 文件中找到的值进行这些替换。特定的,将会寻找以下属性:

Ø         hsqldb.jdbc.port

Ø         mysql.jdbc.port

Ø         hsqldb.jdbc.host

Ø         mysql.jdbc.host

不用进行任何修改,这些属性被设置成它们的默认值:

Ø         hsqldb.jdbc.port=9001

Ø         mysql.jdbc.port=3306

Ø         hsqldb.jdbc.host=localhost

Ø         mysql.jdbc.host=localhost

以下是如何操作:

1.  下载和解压 pentahoj2ee_deployments-<version>.zip 文件进一个目录。对于此处的实例,使用D:\work.

2.  确定你需要构建哪个 archive:

Ø         为 Tomcat 5.X and hypersonic 配置的 .war 文件

Ø         为 Tomcat 5.X 和 mysql 配置的 .war 文件

Ø         为 JBoss 4.0.4 (安装了 jboss portal) 和 hypersonic 配置的 .war 文件

Ø         为 JBoss 4.0.4 (安装了jboss portal) 和 mysql 配置的 .war 文件

Ø         为 JBoss 4.0.4 (没安装 jboss portal) 和 hypersonic 配置的 .war 文件

Ø         为 JBoss 4.0.4 (没安装 jboss portal) 和 mysql 配置的 .war 文件

Ø         为 JBoss 4.0.4 和 hypersonic 配置的 .ear 文件

Ø         为 JBoss 4.0.4 和 mysql 配置的 .ear 文件

3.    打开一个终端窗口(*nix) 或命令提示窗口 (Windows)。

4.    切换到你将 deployment 包解压进的目录。

5.    执行适合于你选择的 archive 的 Ant 命令。

命令如下:

ant <ant _target>

此处 <ant_target> 是以下之一:

Ø         war-pentaho-tomcat-hypersonic

Ø         war-pentaho-tomcat-mysql

Ø         war-pentaho-jboss-hypersonic - 用于安装了 jboss portal 的 jboss 服务器。

Ø         war-pentaho-jboss-hypersonic-no-portal - 用于没安装 jboss portal 的 jboss 服务器。

Ø         war-pentaho-jboss-mysql - 用于安装了 jboss portal 的 jboss 服务器。

Ø         war-pentaho-jboss-mysql-no-portal - 用于没安装 jboss portal 的 jboss 服务器。

Ø         ear-pentaho-jboss-hypersonic - 用于安装了 jboss portal 的 jboss 服务器。

Ø         ear-pentaho-jboss-hypersonic-no-portal - 用于没安装 jboss portal 的 jboss 服务器。

Ø         ear-pentaho-jboss-mysql - 用于安装了 jboss portal 的 jboss 服务器。

Ø         ear-pentaho-jboss-mysql-no-portal - 用于没安装 jboss portal 的 jboss 服务器。

因此例如,如果你想为 Windows 上的 Tomcat 构建一个 .war 文件,命令应该如下所示:

D:\work> ant war-pentaho-tomcat-hypersonic

等待构建脚本完成。生成的 .ear 或 .war 文件位于 /build/pentaho-wars/<appserver> 子目录,其创建于你的 work 目录中。

pentaho-style.war 和 sw-style.war

如果你将平台配置为一个.war 文件,你可能会漏掉其他主要组件 – pentaho-style.war, steel-wheels-style.war 和 pentaho-portal-layout.war。为了简单的和可维护的 style 定制,我们已经将平台的 content styling 迁移进单独的 styles web 应用程序。

如果你构建和部署了 .ear 文件,就不必担心这个 –.ear 文件包括了平台需要的所有额外 web 资源。

因此此处你所需要作的就是部署 pentaho-style.war,steel-wheels-style.war 和 pentaho-portal-layout.war. 进和平台同一个应用服务器。

执行以下命令:

ant zip-pentaho-style-war

当其完成时,执行以下命令:

ant zip-pentaho-steel-wheels-style-war

当其完成时,执行以下命令:

ant zip-pentaho-portal-layout-war

在以下路径中可找到所有 wars/ears:/work/build/pentaho-wars。

既然你已为你的应用服务器构建了合适的 archive,你就可部署平台了。部署步骤取决于你使用的应用服务器,我们假设你已经很熟悉了。

记住:如果你在配置平台时遇到了任何的问题,将你的问题发布到我们的论坛: http://forums.pentaho.org,很可能别人已经找到了一个解决方法,或可以帮助解决。也可发布你的成功案例,以及你怎么解决的!

你可立即构建一切,并仅使用你需要的,执行以下命令即可:ant build-all

06. 配置应用 Archives

This page last changed on Jan 30, 2007 by bhagan.

使用以下链接查找将 pentaho 应用 archives 部署进以下应用服务器的命令:

Ø         Enabling SSL in Tomcat55 & JBoss

Ø         JBoss 4.0.4

Ø         Tomcat 5.0

Ø         Tomcat 5.5

Enabling SSL in Tomcat55 & JBoss

This page last changed on Feb 01, 2007 by mdamour.

介绍

这是一个小小的指南,帮助你在你的 Tomcat 应用服务器上激活 SSL 模式。此处提供的信息基于Tomcat 5.5 和 JBoss 4.0.4,但应该在其他版本上也是通用的。

证书

在一个生产环境中,你应该从一个受信任的证书权威获取证书。

但对于此处的实例,则是采取必需的步骤来创建你自己的 self-signed 证书,主要是使用 Java Development Kit 自带的 keytool。

为生成你的证书,输入以下命令:

keytool -genkey -alias tomcat -keyalg RSA

你会被提示输入你的名字和组织,仅仅输入要求的信息,将会在你的 keystore 中创建你的证书。你必须在磁盘上找到其位置,其通常是你的根目录中的 .keystore 文件。

现在将.keystore 文件移到 {JBOSS}/server/default/conf。这是一个任意位置,但其是在 tomcat 5.5 配置中指定的默认位置。如果你将 keystore 放在一个不同的位置,确保要记住它。

Tomcat server.xml 配置

编辑 {JBOSS}/server/default/deploy/jbossweb-tomcat55.sar 中的 server.xml 文件。找到这节:

<!-- SSL/TLS Connector configuration using admin devl guide keystore <Connector port="8443" address="${ jboss.bind.address}"

maxThreads="100" strategy="ms" maxHttpHeaderSize="8192"

emptySessionPath="true"

scheme="https" secure="true" clientAuth="false"

keystoreFile="${ jboss.server.home .dir} /conf/chap8.keystore"

keystorePass="rmi+ssl" sslProtocol = "TLS" />

->

注意这个节点使用 <!-- 和 --> 进行了注释,你需要取消这个节点的注释。端口默认是 8443,如果你想使用默认 SSL 端口,你应该将之改成 443。修改 keystoreFile 属性匹配你的keystore 文件的位置和文件名。

最后,将 keystorePass 修改成你创建证书时使用的信息。

部署

现在你准备好启动 JBoss / Tomcat,并使用 SSL 了。正常启动你的服务器,用 https url 启动你的 web 应用。例如:

https://localhost/pentaho/Home

Errata

取决于你的运气和 Java 版本,你可能会在你的 server.Log 上发现错误,如:

HTTPS hostname wrong: should be <localhost>

之后是 stack trace,阻止你使用 SSL。我们已经在 PentahoSystem 中解决了这个问题,通过注册我们自己的 hostname verifier。如果你看到这样的错误信息,那就意味着 PentahoSystem 还没有正常初始化。

你可能碰到的另一个问题是:

Caused by: sun.security.validator.ValidatorException: PKIX path building failed:

sun. security.provider.certpath. SunCertPathBuilderException: unable to find valid certification path to requested target

为解决这个问题,在 {JBOSS}/bin/run .conf 中的 JAVA_OPTS 上添加以下设置:

-Djavax. net .ssl. keyStore=/home/mdamour/workspace/pentaho-preconfiguredinstall/server/default/conf / . keystore

-Djavax. net .ssl. keyStorePas sword=changeit

-Dj avax. net .ssl. trustStore=/home/mdamour/workspace/pentaho-preconfiguredinstall/server/default/conf/. keysto

-Djavax. net .ssl. trustStorePassword=changeit"

JBoss 4.0.4

This page last changed on Feb 05, 2007 by bhagan.

如果你正配置 Pentaho BI 平台到一个 vanilla JBoss 4.0.4,你应按照如下提示进行操作。

Datasource Naming

Pentaho web 应用程序中数据源的命名依赖于 JNDI,因此为了成功运行平台和 samples,你需要定义 Jboss 下的这些数据源。JBoss 4.0.4 中的标准是使用一个带有 –ds.xml 命名约定的 xml 文件。如果你部署一个 .ear 文件,你不必定义这些 datasources,但如果你部署一个 .war,你可使用在 pentahoj2ee_deployments-<version>.zip 中为你提供的 datasource 定义。在解压了 zip 文件后,你可在 pentaho-res/jboss/datasources 文件夹中找到这些文件:

Ø         PentahoHibernate-ds.xml

Ø         quartz-ds.xml

Ø         sampledata-ds.xml

Ø         sampledata_admin-ds.xml

Ø         shark-ds.xml

Ø         datasourceX-ds.xml (X = 数字 1 到 5)

Ø         solutionX-ds.xml (X = 数字 1 到 5)

Jar 替换

为使 Pentaho 运行于 Jboss,必须添加/替换几个 jars:

Ø         jaxen - Pentaho 平台依赖于 jaxen 库的版本 1.1beta4。JBoss 不包括 jaxen 库,这个库是用来正常显示平台用户接口的。

Ø         dom4j - Pentaho 平台也依赖于 dom4j 库的版本 1.6.1 来呈现平台。默认的,JBoss 4.0.4 自带了 dom4j 1.5.2。

Ø         mail.jar – 另外,用 pentahoj2ee_deployments-<version> .zip 中的 pentaho-third-party 目录中的 mail.jar 替换 JBoss 自带的 mail.jar。

以下是如何进行操作:

1.       停止服务器,如果其正运行。

2.       从 http://jaxen.org/releases.html 下载 jaxen 1.1 beta 4,或使用pentahoj2ee_deployments-<version>.zip 中的 jaxen.jar 包。

3.       从 http://dom4j.org/download.html,下载 dom4j 1.6.1,或使用 pentahoj2ee_deployments-<version>.zip 包中根目录的 dom4j_1.6.1.jar。

4.      重命名 jaxen 1.1 beta 4 jar 成 jaxen.jar,将 jaxen.jar 文件复制进 <jboss_home>/lib 目录。

5.       从 <jboss_home>/lib 目录删除 dom4j.jar 文件。

6.      重命名 dom4j_1.6.1.jar 成 dom4j.jar,将新的 dom4j.jar 文件复制进 <jboss_home>/lib 目录。

7.用 pentahoj2ee_deployments-<version> .zip 中的 mail.jar 替换<jboss_home>/server/default/lib 中的 mail.jar。

8.       从以下网址下载 commons-http_3.0.1.jar:http://jakarta.apache.org/site/downloads/downloads commons-httpclient.cgi.

9.       将 commons-http_3 .0.1 .jar 复制进 <jboss_home>/server/default/lib。

10.        删除 commons-http.jar (已经在那里的旧版本),将commons-http_3.0.1.jar 重命名成 commons-http.jar。

11.        部署.war 或 .ear。如果部署 .war,确保你将之命名为 pentaho.war。

12.        如果部署 pentaho.war 文件,在 <jboss_home>/server/default/deploy 目录中添加以上列出的 *-ds.xml 文件。如果你没使用默认服务器,那将文件复制进你的服务器的deploy目录。

13.        确保你的数据库正运行。

14.        重启服务器。

JBoss 4.0.4 应用服务器没有部署 JBoss Portal(如果你没获取 JBoss' portal 包),因此任何 Pentaho portal 功能或samples 均不工作。随后将提供设置带有一个预存在的 Jboss Portal 的 Pentaho 平台的指令。那些提示属于 Jboss的 pentaho.war 文件,仅应用于平台的 .war archive。相反,如果你为 Jboss 构建pentaho.ear 的话,会少很多麻烦。其为你集成了几个步骤,否则的话,还要手动操作。

改变服务器端口

This page last changed on Jan 30, 2007 by bhagan.

默认的,平台 web 应用程序被配置使用 8080 端口。如果你已经有另一个服务器使用了 8080 端口,你可修改你的服务器配置,这样它可使用一个不同的端口。每个应用服务器在设置服务器端口上都有独特的需求。因为我们的参考实现运行于 Jboss,因此我们包含了在 Jboss 上修改端口的指令。对于其他的应用服务器,配置端口的信息请参考你的服务器的文档。为修改服务器端口,我们将修改 pentaho web 应用的 web.xml 和 Jboss 的 server.xml。

以下是如何操作:

1.    抽取 web.xml 文件(从.war,位于 pentaho.war/WEB-INF/web.xml)。如果你使用预配置安装包,web.xml 位于 pentaho-demo/jboss/server/default/deploy/pentaho.war/WEB-INF/web.xml。

2.    添加或编辑 base-url 上下文参数

3.       将 server-name 改成用于访问服务器的名称或 IP 地址。如果你仅仅在相同的机器上运行服务器和 web 浏览器,你可将之设置成 localhost。

4.       将 port 改成你想使用的端口号。

<context-param>

<param-name>base-url< /param-name>

<param-value>http://server-name :port/pentaho</param-value> </context-param>

 deployment descriptor 中有 base-urlsetting 的原因是这样应用服务器可生成包含服务器的 URLs 的内容(例如,e-mailing 内容)

以下是关于如何编辑 JBoss server.xml:

1.    编辑 <jboss-home>/server/default/deploy/jbossweb-tomcat55.sar/server.xml。server.xml 位于 jboss/server/default/deploy/jbossweb-tomcat55.sar/server.xml。如果你使用 Tomcat 5.0 或 Tomcat 5.5,也可以应用以下命令,但是 server.xml 的位置不同。

2.    server.xml 文件顶部的几行,你会看到以下行:

<!-- A HTTP/1.1 Connector on port 8080 -->

<Connector port="8080" address="${ jboss.bind.address}"

修改文本 port=”8080”,指向你想使用的端口号。如果你愿意的话,你也可以改变其他连接器的端口。

Tomcat 5.0

This page last changed on Jan 30, 2007 by bhagan.

如果你将 Pentaho BI 平台部署进 Tomcat 5.0,你可能需要以下提示。为了访问平台和samples 使用的默认数据库,你必须在 Tomcat 5.0 的 common/lib 目录添加 hsqldb.jar (Hypersonic 数据库 drivers)。Pentaho web 应用依赖于 JNDI 进行 datasource naming,因此为了成功运行平台和 samples,你需要为 Tomcat 定义这些 datasources,使用 server.xml文件中的 xml 条目来实现。

以下是如何完成的步骤:

1.       停止 Tomcat 服务器。

2.       将 pentaho-third-party 目录中的 hsqldb.jar 复制到 <tomcat-home>/common/lib 目录,此处 <tomcat-home> 是你的 Tomcat 应用服务器的根目录。你可从 pentaho-third-party目录得到 hsqldb.jar,其是 'pentahoj2ee_deployments-<version> .zip' 的一部分。

3.       打开 server.xml 文件,其位于 <tomcat-home>/conf 目录。

4.      在 server.xml 文件的 <DefaultContext></DefaultContext> 节点中仔细复制和粘帖以下列出的 xml。如果你没有 <DefaultContext></DefaultContext> 节点,创建它,并将新的 xml 粘帖在上面。

5.       保存并关闭 server.xml 文件。

6.       启动你的数据库,如果还没有启动的话。

7.       重启 Tomcat 服务器。

Sample JNDI Datasource Mappings for Tomcat 5.0

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

<parameter><name>factory</name><value>org. apache. commons. dbcp . BasicDataSourceFactory</value></param <parameter><name>maxActive< /name><value>20< /value>< /parameter> <parameter><name>maxIdle</name><value>5</value></parameter> <parameter><name>maxWait</name><value>1 0000</value></parameter> <parameter><name>us ername< /name><value>pentaho _user< /value>< /parameter> <parameter><name>password</name><value>password</value></parameter> <parameter><name>driverClassName</name><value>org . hsqldb. j dbcDriver</value></parameter> <parameter><name>url</name><value>jdbc:hsqldb:hsql: //localhost/sampledata</value></parameter>

</ResourceParams>

<Resource name="j dbc/SampleDataAdmin" auth="Container" type="j avax. sql. DataSource" />

<ResourceParams name="j dbc/SampleDataAdmin">

<parameter><name>factory</name><value>org. apache. commons. dbcp . BasicDataSourceFactory</value></param <parameter><name>maxActive< /name><value>20< /value>< /parameter> <parameter><name>maxIdle</name><value>5</value></parameter>

<parameter><name>maxWait</name><value>1 0000</value></parameter>

<parameter><name>us ername< /name><value>pentaho _admin< /value>< /parameter> <parameter><name>password</name><value>password</value></parameter><parameter><name>driverClassName</name><value>org . hsqldb. j dbcDriver</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="j dbc/Hibernate">

<parameter><name>factory</name><value>org. apache. commons. dbcp . BasicDataSourceFactory</val ue></param <parameter><name>maxActive< /name><value>20< /value>< /parameter> <parameter><name>maxIdle</name><value>5</value></parameter>

<parameter><name>maxWait</name><value>1 0000</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. j dbcDriver</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="j dbc/Quartz">

<parameter><name>factory</name><value>org. apache. commons. dbcp . BasicDataSourceFactory</val ue></param <parameter><name>maxActive< /name><value>20< /value>< /parameter> <parameter><name>maxIdle</name><value>5</value></parameter> <parameter><name>maxWait</name><value>1 0000</value></parameter> <parameter><name>us ername< /name><value>pentaho _user< /value>< /parameter> <parameter><name>password</name><value>password</value></parameter> <parameter><name>driverClassName</name><value>org . hsqldb. j dbcDriver</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="j dbc/ Shark">

<parameter><name>factory</name><value>org. apache. commons. dbcp . BasicDataSourceFactory</val ue></param <parameter><name>maxActive< /name><value>20< /value>< /parameter> <parameter><name>maxIdle</name><value>5</value></parameter> <parameter><name>maxWait</name><value>1 0000</value></parameter> <parameter><name>username</name><value> sa</value></parameter> <parameter><name>pas sword< /name><value>< /value>< /parameter> <parameter><name>driverClassName</name><value>org . hsqldb. j dbcDriver</value></parameter> <parameter><name>url</name><value>jdbc:hsqldb:hsql: //localhost/shark</value></parameter>

</ResourceParams>

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

<ResourceParams name="j dbc/datasource1">

<parameter><name>factory</name><value>org. apache. commons. dbcp . BasicDataSourceFactory</value></param <parameter><name>maxActive< /name><value>20< /value>< /parameter> <parameter><name>maxIdle</name><value>5</value></parameter>

<parameter><name>maxWait</name><value>1 0000</value></parameter>

<parameter><name>us ername< /name><value>pentaho _user< /value>< /parameter> <parameter><name>password</name><value>password</value></parameter><parameter><name>driverClassName</name><value>org . hsqldb. j dbcDriver</value></parameter> <parameter><name>url</name><value>jdbc:hsqldb:hsql: //localhost/sampledata</value></parameter>

</ResourceParams>

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

<ResourceParams name="j dbc/datasource2">

<parameter><name>factory</name><value>org. apache. commons. dbcp . BasicDataSourceFactory</val ue></param <parameter><name>maxActive< /name><value>20< /value>< /parameter> <parameter><name>maxIdle</name><value>5</value></parameter>

<parameter><name>maxWait</name><value>1 0000</value></parameter>

<parameter><name>us ername< /name><value>pentaho _user< /value>< /parameter> <parameter><name>password</name><value>password</value></parameter><parameter><name>driverClassName</name><value>org . hsqldb. j dbcDriver</value></parameter> <parameter><name>url</name><value>jdbc:hsqldb:hsql: //localhost/sampledata</value></parameter>

</ResourceParams>

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

<ResourceParams name="j dbc/datasource3">

<parameter><name>factory</name><value>org. apache. commons. dbcp . BasicDataSourceFactory</val ue></param <parameter><name>maxActive< /name><value>20< /value>< /parameter> <parameter><name>maxIdle</name><value>5</value></parameter>

<parameter><name>maxWait</name><value>1 0000</value></parameter>

<parameter><name>us ername< /name><value>pentaho _user< /value>< /parameter> <parameter><name>password</name><value>password</value></parameter><parameter><name>driverClassName</name><value>org . hsqldb. j dbcDriver</value></parameter> <parameter><name>url</name><value>jdbc:hsqldb:hsql: //localhost/sampledata</value></parameter>

</ResourceParams>

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

<ResourceParams name="j dbc/datasource4">

<parameter><name>factory</name><value>org. apache. commons. dbcp . BasicDataSourceFactory</val ue></param <parameter><name>maxActive< /name><value>20< /value>< /parameter> <parameter><name>maxIdle</name><value>5</value></parameter>

<parameter><name>maxWait</name><value>1 0000</value></parameter>

<parameter><name>us ername< /name><value>pentaho _user< /value>< /parameter> <parameter><name>password</name><value>password</value></parameter><parameter><name>driverClassName</name><value>org . hsqldb. j dbcDriver</value></parameter> <parameter><name>url</name><value>jdbc:hsqldb:hsql: //localhost/sampledata</value></parameter>

</ResourceParams>

<ResourceParams name="j dbc/datasource5">

<parameter><name>factory</name><value>org. apache. commons. dbcp . BasicDataSourceFactory</val ue></param <parameter><name>maxActive< /name><value>20< /value>< /parameter> <parameter><name>maxIdle</name><value>5</value></parameter>

<parameter><name>maxWait</name><value>1 0000</value></parameter>

<parameter><name>us ername< /name><value>pentaho _user< /value>< /parameter> <parameter><name>password</name><value>password</value></parameter><parameter><name>driverClassName</name><value>org . hsqldb. j dbcDriver</value></parameter> <parameter><name>url</name><value>jdbc:hsqldb:hsql: //localhost/sampledata</value></parameter>

</ResourceParams>

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

<ResourceParams name="j dbc/solution1">

<parameter><name>factory</name><value>org. apache. commons. dbcp . BasicDataSourceFactory</val ue></param <parameter><name>maxActive< /name><value>20< /value>< /parameter> <parameter><name>maxIdle</name><value>5</value></parameter>

<parameter><name>maxWait</name><value>1 0000</value></parameter>

<parameter><name>us ername< /name><value>pentaho _user< /value>< /parameter> <parameter><name>password</name><value>password</value></parameter><parameter><name>driverClassName</name><value>org . hsqldb. j dbcDriver</value></parameter> <parameter><name>url</name><value>jdbc:hsqldb:hsql: //localhost/sampledata</value></parameter>

</ResourceParams>

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

<ResourceParams name="j dbc/solution2">

<parameter><name>factory</name><value>org. apache. commons. dbcp . BasicDataSourceFactory</value></param <parameter><name>maxActive< /name><value>20< /value>< /parameter> <parameter><name>maxIdle</name><value>5</value></parameter>

<parameter><name>maxWait</name><value>1 0000</value></parameter>

<parameter><name>us ername< /name><value>pentaho _user< /value>< /parameter> <parameter><name>password</name><value>password</value></parameter><parameter><name>driverClassName</name><value>org . hsqldb. j dbcDriver</value></parameter> <parameter><name>url</name><value>jdbc:hsqldb:hsql: //localhost/sampledata</value></parameter>

</ResourceParams>

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

<ResourceParams name="j dbc/solution3">

<parameter><name>factory</name><value>org. apache. commons. dbcp . BasicDataSourceFactory</value></param <parameter><name>maxActive< /name><value>20< /value>< /parameter> <parameter><name>maxIdle</name><value>5</value></parameter>

<parameter><name>maxWait</name><value>1 0000</value></parameter>

<parameter><name>us ername< /name><value>pentaho _user< /value>< /parameter> <parameter><name>password</name><value>password</value></parameter><parameter><name>driverClassName</name><value>org . hsqldb. j dbcDriver</value></parameter> <parameter><name>url</name><value>jdbc:hsqldb:hsql: //localhost/sampledata</value></parameter>

</ResourceParams>

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

<ResourceParams name="j dbc/solution4">

<parameter><name>factory</name><value>org. apache. commons. dbcp . BasicDataSourceFactory</val ue></param <parameter><name>maxActive< /name><value>20< /value>< /parameter> <parameter><name>maxIdle</name><value>5</value></parameter>

<parameter><name>maxWait</name><value>1 0000</value></parameter>

<parameter><name>us ername< /name><value>pentaho _user< /value>< /parameter> <parameter><name>password</name><value>password</value></parameter><parameter><name>driverClassName</name><value>org . hsqldb. j dbcDriver</value></parameter> <parameter><name>url</name><value>jdbc:hsqldb:hsql: //localhost/sampledata</value></parameter>

</ResourceParams>

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

<ResourceParams name="j dbc/solution5">

<parameter><name>factory</name><value>org. apache. commons. dbcp . BasicDataSourceFactory</val ue></param <parameter><name>maxActive< /name><value>20< /value>< /parameter> <parameter><name>maxIdle</name><value>5</value></parameter>

<parameter><name>maxWait</name><value>1 0000</value></parameter>

<parameter><name>us ername< /name><value>pentaho _user< /value>< /parameter> <parameter><name>password</name><value>password</value></parameter><parameter><name>driverClassName</name><value>org . hsqldb. j dbcDriver</value></parameter> <parameter><name>url</name><value>jdbc:hsqldb:hsql: //localhost/sampledata</value></parameter>

</ResourceParams>

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

 sample PCI 中,提供了 datasourceX  solutionX JNDI 名,这使得用户易于配置服务器和他们的数据源进行通信,而不必修改 Pentaho web.xml然而,在一个资源受限的环境中,在相同的服务器上定义多个 JNDI 连接可能会用尽有价值的数据库服务器连接(依赖于服务器的 JNDI 实现)。如果你选择不包括 datasourceX  solutionX 数据源,你必须从 web 应用 deployment descriptor (web.xml) 手动删除声明。在 web.xml 底部,你查找所有引用了datasourceX/solutionX JNDI 名的 resource reference (resource-ref) 条目。

在这个步骤中,假设 Tomcat 被设置成自动部署新的 web 应用。

Tomcat 5.5 (在本文成文时还不是一个 JSR168 兼容的 portlet 容器,因此任何 Pentaho portal 功能或 samples不会运行。Stringbeans 是一个开源的 JSR-168 portal,其和 Apache Tomcat 一起运行。希望社区人员能提供如何在 Tomcat 5.5 上(或其他 portals)集成 Stringbeans 的命令。

如果你在装载持久会话时,出现类似于 IOException 的错误,在 <Context> 元素上添加以下代码:

<Manager className= "org.apache.catalina.session .PersistentManager" saveOnRestart= "false"/>

Tomcat 5.5

This page last changed on Jan 30, 2007 by bhagan.

如果你将 Pentaho BI 平台部署进 Tomcat 5.5,按照下面的提示来操作。为了访问平台和 samples 的默认数据库,你必须在 Tomcat 5.5 的 common/lib 目录中添加 hsqldb.jar (Hypersonic 数据库 drivers)。Pentaho web 应用依赖于 JNDI 进行 datasource naming,因此为了成功运行平台和 samples,你需要为 Tomcat 定义这些 datasources。我们发现在内嵌于 <Host> 元素的<Context> 元素上添加 resources 也很好。以下提供了一些实例 xml。

以下是操作步骤:

1.       停止 Tomcat 服务器。

2.       将 pentaho.war 复制进 <tomcat-home>/webapps。

3.     将 pentaho-third-party 目录中的 hsqldb.jar 复制到 <tomcat-home>/common/lib 目录,此处 <tomcat-home> 是你的 Tomcat 应用服务器的根目录。你可从 pentaho-third-party 目录得到hsqldb.jar,其是 'pentahoj2ee_deployments-<version> .zip' 的一部分。

4.       打开 server.xml 文件,其位于 <tomcat-home>/conf 目录。

5.       server.xml 文件的 <Host></Host> 元素中仔细添加以下列出的 xml。

6.       保存并关闭 server.xml 文件。

7.       启动你的数据库,如果它还没启动的话。

8.       重启 Tomcat 服务器。

Tomcat 5.5 的实例 JNDI Datasource mappings

<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="j dbc/ Shark" auth="Container" type="j avax. 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" />

<Resource name="jdbc/SampleDataAdmin" auth="Container" type="javax. sql.DataSource" maxActive="20"

maxIdle="5" maxWait="10000" username="pentaho_admin" password="password" factory="org. apache. commons . dbcp . BasicDataSourceFactory"

driverClassName="org . hsqldb . j dbcDriver"

url="jdbc:hsqldb:hsql://localhost/sampledata" />

<Resource name="jdbc/solution1" 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 . j dbcDriver"

url="jdbc:hsqldb:hsql://localhost/sampledata" />

<Resource name="jdbc/solution2" 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 . j dbcDriver"

url="jdbc:hsqldb:hsql://localhost/sampledata" />

<Resource name="jdbc/solution3" 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 . j dbcDriver"

url="jdbc:hsqldb:hsql://localhost/sampledata" />

<Resource name="jdbc/solution4" 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 . j dbcDriver"

url="jdbc:hsqldb:hsql://localhost/sampledata" />

<Resource name="jdbc/solution5" 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 . j dbcDriver"

url="jdbc:hsqldb:hsql://localhost/sampledata" />

<Resource name="jdbc/datasource1" 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/datasource2" 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/datasource3" 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/datasource4" 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/datasource5" 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" /> </Context>

 sample PCI 中,提供了 datasourceX  solutionX JNDI 名,这使得用户易于配置服务器和他们的数据源进行通信,而不必修改 Pentaho web.xml然而,在一个资源受限的环境中,在相同的服务器上定义多个 JNDI 连接可能会用尽有价值的数据库服务器连接(依赖于服务器的 JNDI 实现)。如果你选择不包括 datasourceX  solutionX 数据源,你必须从 web 应用 deployment descriptor (web.xml) 手动删除声明。在 web.xml 底部,你查找所有引用了datasourceX/solutionX JNDI 名的 resource reference (resource-ref) 条目。

在这个步骤中,假设 Tomcat 被设置成自动部署新的 web 应用。

Tomcat 5.5 (在本文成文时还不是一个 JSR168 兼容的 portlet 容器,因此任何 Pentaho portal 功能或 samples不会运行。Stringbeans 是一个开源的 JSR-168 portal,其和 Apache Tomcat 一起运行。希望社区人员能提供如何在 Tomcat 5.5 上(或其他 portals)集成 Stringbeans 的命令。

如果你在装载持久会话时,出现类似于 IOException 的错误,在 <Context> 元素上添加以下代码:

<Manager className= "org.apache.catalina.session .PersistentManager" saveOnRestart= "false"/>

你可能感兴趣的:(转-pentato技术白皮书中文版(九)--Pentaho 的手动配置)