通过“通用数据库”连接 Pentaho 用户控制台和 MongoDB 时出错

Posted

技术标签:

【中文标题】通过“通用数据库”连接 Pentaho 用户控制台和 MongoDB 时出错【英文标题】:Error connecting Pentaho User Console and MongoDB via "Generic Database" 【发布时间】:2016-06-23 14:54:36 【问题描述】:

早上好。

这是我目前遇到的错误:

Error connecting to database [MongoDB] : org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database


Error connecting to database: (using class com.mongodb.Mongo)
No suitable driver found for jdbc:mongo://157.27.254.179:27017/test




org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database


Error connecting to database: (using class com.mongodb.Mongo)
No suitable driver found for jdbc:mongo://157.27.254.179:27017/test




    at org.pentaho.di.core.database.Database.normalConnect(Database.java:466)
    at org.pentaho.di.core.database.Database.connect(Database.java:364)
    at org.pentaho.di.core.database.Database.connect(Database.java:335)
    at org.pentaho.di.core.database.Database.connect(Database.java:325)
    at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:80)
    at org.pentaho.di.core.database.DatabaseMeta.testConnection(DatabaseMeta.java:2734)
    at org.pentaho.ui.database.event.DataHandler.testDatabaseConnection(DataHandler.java:591)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.pentaho.ui.xul.impl.AbstractXulDomContainer.invoke(AbstractXulDomContainer.java:313)
    at org.pentaho.ui.xul.swing.tags.SwingButton$OnClickRunnable.run(SwingButton.java:71)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
    at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
    at java.awt.Dialog.show(Dialog.java:1084)
    at java.awt.Component.show(Component.java:1673)
    at java.awt.Component.setVisible(Component.java:1625)
    at java.awt.Window.setVisible(Window.java:1014)
    at java.awt.Dialog.setVisible(Dialog.java:1005)
    at org.pentaho.ui.xul.swing.tags.SwingDialog.show(SwingDialog.java:250)
    at mondrian.gui.Workbench.connectionButtonActionPerformed(Workbench.java:1288)
    at mondrian.gui.Workbench.access$900(Workbench.java:58)
    at mondrian.gui.Workbench$24.actionPerformed(Workbench.java:751)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
    at java.awt.Component.processMouseEvent(Component.java:6535)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6300)
    at java.awt.Container.processEvent(Container.java:2236)
    at java.awt.Component.dispatchEventImpl(Component.java:4891)
    at java.awt.Container.dispatchEventImpl(Container.java:2294)
    at java.awt.Component.dispatchEvent(Component.java:4713)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
    at java.awt.Container.dispatchEventImpl(Container.java:2280)
    at java.awt.Window.dispatchEventImpl(Window.java:2750)
    at java.awt.Component.dispatchEvent(Component.java:4713)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 
Error connecting to database: (using class com.mongodb.Mongo)
No suitable driver found for jdbc:mongo://157.27.254.179:27017/test


    at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:579)
    at org.pentaho.di.core.database.Database.normalConnect(Database.java:450)
    ... 75 more
Caused by: java.sql.SQLException: No suitable driver found for jdbc:mongo://157.27.254.179:27017/test
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:270)
    at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:565)
    ... 76 more


Custom URL     :                                     jdbc:mongo://157.27.254.179:27017/test
Custom Driver Class:com.mongodb.Mongo

这是配置:

自定义连接地址:jdbc:mongo//localhost:27017/default 自定义驱动类名:com.mongodb.Mongo(驱动在驱动文件夹中,从这里下载:https://oss.sonatype.org/content/rep...-driver/2.14.2)

我真的不知道该怎么做!

【问题讨论】:

无法将 PUC 连接到 MondgoDB,因为它必须由开发人员实现 【参考方案1】:

无法将 PUC 连接到 MondgoDB,因为它必须由开发人员实现

【讨论】:

以上是关于通过“通用数据库”连接 Pentaho 用户控制台和 MongoDB 时出错的主要内容,如果未能解决你的问题,请参考以下文章

编辑 Pentaho 用户控制台主页

Pentaho bi 服务器和管理控制台通信

在 pentaho 外部查看 pentaho 仪表板

Pentaho 报告:日期选择器参数未解析为用户控制台网页报告

Pentaho 认证方法

在 Pentaho Kettle 中的步骤初始化之前测试数据库连接?