无法加载 JDBC 驱动程序类 PostgreSQL + NIFI。

4

我正在开始使用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

1
https://stackoverflow.com/search?q=ClassNotFoundException%3A+org.postgresql.Driver - user330315
2
我看到了一些回复并尝试了它们,但我总是得到相同的错误。 - amira khalifa
1
你能分享一下你的DBCPConnectionPool配置吗? - mattyb
1
谢谢您的回复!我找到了问题 :) 我在jdbc名称后面插入了一个换行符。 - amira khalifa
请问您能否添加您的代码和POM文件以便更好地理解它? - vaquar khan
2个回答

3
postgresql jdbc驱动程序并未与nifi捆绑在一起,您需要:
  1. 下载 driver (jar) ,例如: postgresql-42.2.24.jar
  2. 将其放置在 nifi/lib 文件夹中
  3. 重启 nifi
  4. 打开您的 DBCPConnectionPool 控制器服务属性
  5. Database Driver Class Name 设置为 org.postgresql.Driver

资源


你好,请问接下来该怎么做?我已经将jar文件放在lib文件夹中了,那么在“数据库驱动程序位置”中应该给出什么路径呢? - Chitrang Sharma
@ChitrangSharma 请看我上面的编辑。希望这能帮到你。 - Anthony Davis

0
问答者找到了根本原因: 我在jdbc名称后的那一行插入了一个回车符。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接