【问题标题】:can't load jdbc driver class PostgreSQL + NIFI无法加载 jdbc 驱动程序类 PostgreSQL + NIFI
【发布时间】:2018-08-05 20:27:01
【问题描述】:

开始使用 Nifi,这是我的第一个练习。

因此尝试将 csv 文件放入 Postgres 表中。如图所示,我定义了我的数据库驱动程序。

错误是:

无法加载 jdbc 驱动类

在我的日志文件中我有这条消息:

ERROR [StandardProcessScheduler Thread-1] o.a.n.c.s.StandardControllerServiceNode DBCPConnectionPool[id=c25f8f91-0161-1000-a496-8910832bdbd8] F$
org.apache.nifi.reporting.InitializationException: Can't load Database Driver
        at org.apache.nifi.dbcp.DBCPConnectionPool.getDriverClassLoader(DBCPConnectionPool.java:249)
        at org.apache.nifi.dbcp.DBCPConnectionPool.onConfigured(DBCPConnectionPool.java:198)
        at sun.reflect.GeneratedMethodAccessor437.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:137)
        at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:125)
        at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:70)
        at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotation(ReflectionUtils.java:47)
        at org.apache.nifi.controller.service.StandardControllerServiceNode$2.run(StandardControllerServiceNode.java:409)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: org.postgresql.Driver

【问题讨论】:

  • 我看到了一些响应并尝试了它们,但我总是遇到同样的错误
  • 您能分享您的 DBCPConnectionPool 配置吗?
  • 感谢您的回复!我发现了问题:) 我在 jdbc 名称后面的行中插入了一个返回
  • 能否请您添加您的代码和 POM 文件以更好地理解它

标签: postgresql jdbc apache-nifi


【解决方案1】:

提问者找到了根本原因: 我在 jdbc 名称后面的行中插入一个返回

【讨论】:

    【解决方案2】:

    postgres jdbc 驱动程序没有与 nifi 打包。你必须

    1. 下载 驱动程序 (jar) 例如postgresql-42.2.24.jar
    2. 将其放在 nifi/lib 文件夹中
    3. 重启 nifi
    4. 打开您的 DBCPConnectionPool 控制器服务属性
    5. 数据库驱动类名设置为org.postgresql.Driver

    资源

    【讨论】:

    • 您好,请告诉我下一步该怎么做,我已将 jar 放在 lib 文件夹中,我需要在“数据库驱动程序位置”中提供什么路径?
    • @ChitrangSharma 看到我上面的编辑。希望这会有所帮助
    • 谢谢,为我工作
    猜你喜欢
    • 2017-05-17
    • 1970-01-01
    • 2015-01-27
    • 2013-07-28
    • 2016-08-18
    • 2012-04-23
    • 2018-05-09
    • 2015-02-21
    相关资源
    最近更新 更多