无法通过 Pentaho 连接到 oracle。找不到“oracle.jdbc.driver.OracleDriver”
Posted
技术标签:
【中文标题】无法通过 Pentaho 连接到 oracle。找不到“oracle.jdbc.driver.OracleDriver”【英文标题】:Unable to connect to oracle via Pentaho. 'oracle.jdbc.driver.OracleDriver' could not be found 【发布时间】:2013-12-22 03:00:18 【问题描述】:您好,我刚刚安装了 Pentaho Data Integration v. 5.01,我正在尝试连接到数据库。但是,由于出现错误(粘贴在下面),我无法测试连接。
我在系统上也安装了 JDK 1.7,但是我似乎无法在任何地方找到 ojdbc14.jar。
我下载了它并将它粘贴到 pentaho 的 \lib 文件夹中,但我仍然遇到同样的错误。
有解决这个问题的办法吗?
Error connecting to database [test] : org.pentaho.di.core.exception.KettleDatabaseException:
Error occured while trying to connect to the database
Driver class 'oracle.jdbc.driver.OracleDriver' could not be found, make sure the 'Oracle' driver (jar file) is installed.
oracle.jdbc.driver.OracleDriver
org.pentaho.di.core.exception.KettleDatabaseException:
Error occured while trying to connect to the database
Driver class 'oracle.jdbc.driver.OracleDriver' could not be found, make sure the 'Oracle' driver (jar file) is installed.
oracle.jdbc.driver.OracleDriver
at org.pentaho.di.core.database.Database.normalConnect(Database.java:415)
at org.pentaho.di.core.database.Database.connect(Database.java:353)
at org.pentaho.di.core.database.Database.connect(Database.java:306)
at org.pentaho.di.core.database.Database.connect(Database.java:294)
at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:84)
at org.pentaho.di.core.database.DatabaseMeta.testConnection(DatabaseMeta.java:2459)
at org.pentaho.ui.database.event.DataHandler.testDatabaseConnection(DataHandler.java:541)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.pentaho.ui.xul.impl.AbstractXulDomContainer.invoke(AbstractXulDomContainer.java:329)
at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:139)
at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:123)
at org.pentaho.ui.xul.swt.tags.SwtButton.access$500(SwtButton.java:26)
at org.pentaho.ui.xul.swt.tags.SwtButton$4.widgetSelected(SwtButton.java:121)
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
at org.eclipse.jface.window.Window.open(Window.java:796)
at org.pentaho.ui.xul.swt.tags.SwtDialog.show(SwtDialog.java:375)
at org.pentaho.ui.xul.swt.tags.SwtDialog.show(SwtDialog.java:301)
at org.pentaho.di.ui.core.database.dialog.XulDatabaseDialog.open(XulDatabaseDialog.java:115)
at org.pentaho.di.ui.core.database.dialog.DatabaseDialog.open(DatabaseDialog.java:62)
at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.newConnection(SpoonDBDelegate.java:493)
at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.newConnection(SpoonDBDelegate.java:478)
at org.pentaho.di.ui.spoon.Spoon.doubleClickedInTree(Spoon.java:2885)
at org.pentaho.di.ui.spoon.Spoon.access$2300(Spoon.java:332)
at org.pentaho.di.ui.spoon.Spoon$27.widgetDefaultSelected(Spoon.java:5657)
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at org.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1227)
at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7368)
at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:8673)
at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:625)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.pentaho.commons.launcher.Launcher.main(Launcher.java:134)
Caused by: org.pentaho.di.core.exception.KettleDatabaseException:
Driver class 'oracle.jdbc.driver.OracleDriver' could not be found, make sure the 'Oracle' driver (jar file) is installed.
oracle.jdbc.driver.OracleDriver
at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:474)
at org.pentaho.di.core.database.Database.normalConnect(Database.java:399)
... 45 more
Caused by: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:467)
... 46 more
【问题讨论】:
【参考方案1】:在我的情况下,错误出现在 报告设计器
修复:仅将 ojdbc14.jar 复制到
\prd-ce-5.0.1-stable\report-designer\lib
并重新启动工具。
【讨论】:
【参考方案2】:尝试将 odbc jar 文件(例如:ojdbc5-11.1.0.7.0.jar)放在安装的“data-integration/lib”目录中。不要忘记重新启动 Pentaho 以使其工作。
【讨论】:
更多详情:knowpentaho.com/2013/12/pentaho-common-errors-driver-class.html【参考方案3】:我可以通过选择 Oralce Native connection > Hostname as Ip address of DB server > 而不是 SN00XXXX 来解决这个问题,我使用 DB00XXX 名称作为数据库名称。
我希望这适用于 Oracle 连接的此类问题。
【讨论】:
【参考方案4】:尝试将jar放到tomcat库文件夹中,然后重启Pentaho。
应该在这里.../biserver-ce-6.0.0.0-353/biserver-ce/tomcat/lib
这里已经有一些驱动了。
【讨论】:
【参考方案5】:在 Pentaho 6.0 版中,将驱动程序 (ojdbc6.jar) 放入:“PentahoInstallation”\design-tools\data-integration\lib 并重新启动 Data Integration ide。
【讨论】:
【参考方案6】:首先访问 Oracle 站点: http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html
下载 1 个文件:ojdbc6.jar (2,739,670 字节)-(SHA1 校验和:a483a046eee2f404d864a6ff5b09dc0e1be3fe6c) 用于 JDK 1.6 的类。它包含 JDBC 驱动程序类,但在 Oracle 对象和集合类型中支持 NLS 的类除外。
复制到 Pentaho 文件夹:C:\Program Files\Pentaho\data-integration\lib
这适用于我的带有最新 Pentaho 5.3 Stable 的 Windows 7 X64 Pro。
【讨论】:
4.关闭勺子,如果它是打开的,然后重新打开。这是我缺少的一步【参考方案7】:这是我的设置。我遇到了这个问题并设法解决了它。
我在我的机器上运行了 SQLDeveloper,它工作正常,即使在 *** 下也是如此。但是,我在运行 Spoon 时发现,如果我使用 ***,它将无法工作。
我尝试将 SQLDeveloper 附带的 Oracle JDBC 驱动程序放入 Pentaho。那没用。
但是,我注意到 SQLDeveloper 和 Spoon 之间的一大区别是它们使用不同的 Java 运行时和 JDBC Oracle 驱动程序!特别是,我的 SQLDeveloper 版本在 32 位 JRE 版本 1.6.0_11 上运行,而我的系统范围 JDK 是 64 位版本 1.7.0_03。
我找到了 SQLDeveloper 使用的 JDBC 驱动程序,并将它们用作 Spoon 附带的驱动程序的替代品 -- 没有变化。
然后我重新定位 Spoon 以使用 SQLDeveloper 使用的 Java 运行时。
我设置了两个环境变量:PENTAHO_JAVA 和 PENTAHO_JAVA_HOME -- 现在可以正常工作了!
作为参考,这是我的环境变量:
PENTAHO_JAVA=C:\opt\sqldeveloper\jdk\jre\bin\java.exe
PENTAHO_JAVA_HOME=c:\opt\sqldeveloper\jdk\jre\
如果相关,我使用的是 Windows 7 x64。
【讨论】:
感谢您的回复!我找到了解决办法。我的系统上已经有了 Pentaho 4.1.0 的运行版本。导致问题的是 5.0.1。所以我所做的是,我从 4.1 复制了所有 /lib* 文件夹并将其粘贴到 5.0.1 的同一位置。它奏效了!下次遇到这种情况,我试试你的方法!【参考方案8】:看,伙计们,我们不需要所有这些东西。我们需要将oracle jdbc驱动(ojdbc6.jar)粘贴到以下位置。
-
C:\Program Files\pentaho\design-tools\report-designer\lib\jdbc
C:\Program Files\pentaho\design-tools\data-integration\lib
C:\Program Files\pentaho\design-tools\aggregation-designer\lib
C:\Program Files\pentaho\design-tools\schema-workbench\lib
【讨论】:
【参考方案9】:尝试将 ojdbc 驱动程序放入您的 PDI 路径(位置)中的 libext/JDBC 中
【讨论】:
以上是关于无法通过 Pentaho 连接到 oracle。找不到“oracle.jdbc.driver.OracleDriver”的主要内容,如果未能解决你的问题,请参考以下文章
无法连接到 Pentaho Kettle 中的 PostgreSQL 数据库
Pentaho Spoon 由于缺少驱动程序(jar 文件)而无法连接到 IBM DB2 数据库
pentaho水壶无法连接到cloudera cdh4 HDFS