ApacheNifi无法加载MySQL驱动程序

人气:1,079 发布:2022-10-16 标签: mysql-connector apache-nifi

问题描述

我想尝试使用处理器ConvertJSONToSQL连接到MySQL,我将mySQL-Connector-Java-5.1.34.jar添加到了我的lib文件夹中的nifi文件夹和DBCPConnectionPool 1.12.1中,但收到错误

2021-02-04 13:41:07,810 WARN [Timer-Driven Process Thread-10] o.a.n.controller.tasks.ConnectableTask Administratively Yielding ConvertJSONToSQL[id=6ecb1fe7-0177-1000-ae33-4a73671a1c31] due to uncaught Exception: org.apache.nifi.controller.service.ControllerServiceDisabledException: Cannot invoke method public default java.sql.Connection org.apache.nifi.dbcp.DBCPService.getConnection(java.util.Map) throws org.apache.nifi.processor.exception.ProcessException on Controller Service with identifier 6ed1aaef-0177-1000-327b-2291fb935dc5 because the Controller Service's State is currently ENABLING
org.apache.nifi.controller.service.ControllerServiceDisabledException: Cannot invoke method public default java.sql.Connection org.apache.nifi.dbcp.DBCPService.getConnection(java.util.Map) throws org.apache.nifi.processor.exception.ProcessException on Controller Service with identifier 6ed1aaef-0177-1000-327b-2291fb935dc5 because the Controller Service's State is currently ENABLING
    at org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:97)
    at com.sun.proxy.$Proxy145.getConnection(Unknown Source)
    at org.apache.nifi.processors.standard.ConvertJSONToSQL.lambda$onTrigger$0(ConvertJSONToSQL.java:317)
    at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2380)
    at java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1908)
    at com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2378)
    at com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2361)
    at com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:108)
    at com.github.benmanes.caffeine.cache.LocalManualCache.get(LocalManualCache.java:62)
    at org.apache.nifi.processors.standard.ConvertJSONToSQL.onTrigger(ConvertJSONToSQL.java:315)
    at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
    at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1174)
    at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:213)
    at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
    at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
2021-02-04 13:41:08,528 INFO [NiFi Web Server-24] o.a.n.c.s.StandardProcessScheduler Stopping ConvertJSONToSQL[id=6ecb1fe7-0177-1000-ae33-4a73671a1c31]
2021-02-04 13:41:08,528 INFO [NiFi Web Server-24] o.a.n.controller.StandardProcessorNode Stopping processor: ConvertJSONToSQL[id=6ecb1fe7-0177-1000-ae33-4a73671a1c31]
2021-02-04 13:41:08,528 INFO [Timer-Driven Process Thread-6] o.a.n.c.s.TimerDrivenSchedulingAgent Stopped scheduling ConvertJSONToSQL[id=6ecb1fe7-0177-1000-ae33-4a73671a1c31] to run
2021-02-04 13:41:08,591 INFO [Flow Service Tasks Thread-1] o.a.nifi.controller.StandardFlowService Saved flow controller org.apache.nifi.controller.FlowController@233d998a // Another save pending = false
2021-02-04 13:41:11,192 INFO [pool-12-thread-1] o.a.n.c.r.WriteAheadFlowFileRepository Initiating checkpoint of FlowFile Repository
2021-02-04 13:41:11,192 INFO [pool-12-thread-1] o.a.n.c.r.WriteAheadFlowFileRepository Successfully checkpointed FlowFile Repository with 21 records in 0 milliseconds
2021-02-04 13:41:24,853 ERROR [Timer-Driven Process Thread-6] o.a.n.c.s.StandardControllerServiceNode StandardControllerServiceNode[service=DBCPConnectionPool[id=6ed1aaef-0177-1000-327b-2291fb935dc5], versionedComponentId=null, processGroup=StandardProcessGroup[identifier=6ebbd937-0177-1000-c7b8-264fbb3c4621,name=CSVReaderDbWriter], active=true] Failed to invoke @OnEnabled method due to org.apache.nifi.reporting.InitializationException: Can't load Database Driver: {}
org.apache.nifi.reporting.InitializationException: Can't load Database Driver
    at org.apache.nifi.dbcp.DBCPConnectionPool.getDriverClassLoader(DBCPConnectionPool.java:467)
    at org.apache.nifi.dbcp.DBCPConnectionPool.onConfigured(DBCPConnectionPool.java:406)
    at jdk.internal.reflect.GeneratedMethodAccessor637.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:142)
    at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:130)
    at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:75)
    at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotation(ReflectionUtils.java:52)
    at org.apache.nifi.controller.service.StandardControllerServiceNode$2.run(StandardControllerServiceNode.java:432)
    at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:398)
    at org.apache.nifi.dbcp.DBCPConnectionPool.getDriverClassLoader(DBCPConnectionPool.java:456)
    ... 16 common frames omitted

推荐答案

https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-api-changes.html

MySQL驱动程序8中的更改:

在MySQL连接器/J中实现java.sql.Driver的类的名称已从com.mysql.jdbc.Driver更改为com.mysql.cj.jdbc.Driver。旧的类名已弃用。

您正在使用JAR库v5.x。因此,您必须使用com.mysql.jdbc.Driver

632