无法在 Windows 环境中启动 Pentaho BI 服务器

Unable to to start Pentaho BI Server on Windows environment

我是 Pentaho BI 服务器的新手。我已经下载了 Pentaho BI Server 的社区版 (biserver-ce-6.0.1.0-386),我正尝试在 Windows 10 (x64) 机器上 运行 它。我已经按照 http://akbarahmed.com/2012/05/12/install-pentaho-bi-server-4-5-on-windows-7-x64/ 中的建议设置了 "PENTAHO_JAVA_HOME" 环境路径变量(这是针对旧版本的 BI Server,但我认为相同的方法也适用于此处).

当我运行开始-pentaho.bat时,这是我得到的输出:

G:\Pentaho\biserver-ce-6.0.1.0-386\biserver-ce>start-pentaho.bat
DEBUG: Using PENTAHO_JAVA_HOME
DEBUG: _PENTAHO_JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_79
DEBUG: _PENTAHO_JAVA=C:\Program Files (x86)\Java\jdk1.7.0_79\bin\java.exe
Using CATALINA_BASE:   "G:\Pentaho\biserver-ce-6.0.1.0-386\biserver-ce\tomcat"
Using CATALINA_HOME:   "G:\Pentaho\biserver-ce-6.0.1.0-386\biserver-ce\tomcat"
Using CATALINA_TMPDIR: "G:\Pentaho\biserver-ce-6.0.1.0-386\biserver-ce\tomcat\temp"
Using JRE_HOME:        "C:\Program Files (x86)\Java\jdk1.7.0_79"
Using CLASSPATH:       "G:\Pentaho\biserver-ce-6.0.1.0-386\biserver-ce\tomcat\bin\bootstrap.jar;G:\Pentaho\biserver-ce-6.0.1.0-386\biserver-ce\tomcat\bin\tomcat-juli.jar"

命令提示符 window 短暂出现然后消失。此后我没有收到任何错误消息,但是如果我访问 http://localhost:8080,似乎没有服务器正在侦听端口 8080。

当我尝试停止 BI Server 时,我得到的是:

G:\Pentaho\biserver-ce-6.0.1.0-386\biserver-ce>stop-pentaho.bat
DEBUG: Using PENTAHO_JAVA_HOME
DEBUG: _PENTAHO_JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_79
DEBUG: _PENTAHO_JAVA=C:\Program Files (x86)\Java\jdk1.7.0_79\bin\java.exe
Using CATALINA_BASE:   "G:\Pentaho\biserver-ce-6.0.1.0-386\biserver-ce\tomcat"
Using CATALINA_HOME:   "G:\Pentaho\biserver-ce-6.0.1.0-386\biserver-ce\tomcat"
Using CATALINA_TMPDIR: "G:\Pentaho\biserver-ce-6.0.1.0-386\biserver-ce\tomcat\temp"
Using JRE_HOME:        "C:\Program Files (x86)\Java\jdk1.7.0_79"
Using CLASSPATH:       "G:\Pentaho\biserver-ce-6.0.1.0-386\biserver-ce\tomcat\bin\bootstrap.jar;G:\Pentaho\biserver-ce-6.0.1.0-386\biserver-ce\tomcat\bin\tomcat-juli.jar"
13-Mar-2016 03:06:22.590 SEVERE [main] org.apache.catalina.startup.Catalina.stopServer Could not contact localhost:8005. Tomcat may not be running.
13-Mar-2016 03:06:22.605 SEVERE [main] org.apache.catalina.startup.Catalina.stopServer Catalina.stop:
 java.net.ConnectException: Connection refused: connect
        at java.net.DualStackPlainSocketImpl.connect0(Native Method)
        at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:579)
        at java.net.Socket.connect(Socket.java:528)
        at java.net.Socket.<init>(Socket.java:425)
        at java.net.Socket.<init>(Socket.java:208)
        at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:450)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:400)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:487)

请让我知道我做错了什么以及如何纠正这个问题。

已解决: 我发现问题是由于尝试使用 32 位 Java。我看到了这条消息,

WARNING [main] org.apache.catalina.core.AprLifecycleListener.init The APR based Apache Tomcat Native library failed to load. The error reported was [G:\Pentaho\biserver-ce-6.0.1.0-386\biserver-ce\tomcat\bin\tcnative-1.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform]

Screenshot of Tomcat Console

我将 PENTAHO_JAVA_HOME 环境变量设置为指向我系统上安装的 64 位 JDK,现在,Pentaho BI 服务器按预期启动。

我在 AMD Athlon/Windows 10 Home(32 位)上尝试启动 Pentaho BI 服务器社区版 5.3/JRE7 时遇到了完全相同的行为。对我有用的解决方案是将 Tomcat 作为 Windows 服务启动,如下所示:

(注:以下注释假设Pentaho BI Server安装在C:\Pentaho)

  1. 编辑系统环境变量以包括以下内容:

    PENTAHO_JAVA_HOME  = C:\Program Files\Java\jre7
    
  2. 如果另一个应用程序正在使用端口 8080,请编辑 C:\Pentaho \biserver-ce\tomcat\conf\server.xml 文件以替换每个匹配项端口 8080 的新端口号,例如8081.

  3. 使用管理员命令提示符,导航至 C:\Pentaho\biserver-ce\tomcat\bin 和 运行 命令:

    service.bat install 
    

(有关详细信息,请参阅 https://tomcat.apache.org/tomcat-6.0-doc/windows-service-howto.html)。

  1. 在同一管理员命令提示符下,运行

    tomcat6w.exe  
    

启动允许您启动和关闭服务以及修改服务设置的应用程序。应用程序的图形用户界面打开。

  1. 在应用程序中,修改Tomcat设置如下:

    (a) 在“日志记录”选项卡下,确保日志 sub-directory 在 tomcat 目录下 - 例如:

     C:\Pentaho\biserver-ce\tomcat\logs
    

    (b) 在“Java”选项卡下,在“Java 选项”文本框(打开C:\Pentaho\biserver-ce\start-pentaho.bat 使用文本编辑器查看 32 位和 64 位处理器设置——下面的设置适用于 32 位处理器:

    -Xms256m
    -Xmx768m
    -XX:MaxPermSize=256m
    -Dsun.rmi.dgc.client.gcInterval=3600000
    -Dsun.rmi.dgc.server.gcInterval=3600000
    

    (c) 在“启动”选项卡下,确保“工作路径”文本框中的值指向 \tomcat\bin sub-directory - 例如:

    C:\Pentaho\biserver-ce\tomcat\bin 
    

(有关详细信息,请参阅 Shivan 于 2016 年 12 月 7 日提供的解决方案 Pentaho Initialization Exception)。

  1. 在“常规”选项卡下,单击“开始”按钮启动 Pentaho BI 服务器。

  2. 使用您的网络浏览器,使用 link http://localhost:8081/ 启动 Pentaho BI 服务器。 此时应该会出现 Pentaho 登录屏幕 - 它确实适合我。

  3. 使用 Pentaho 后,您可以通过单击“停止”按钮正常关闭 Tomcat 服务。