java – Nifi“PutSQL”超出范围的例外

我正在尝试使用“PutSQL”处理器来做到这一点.

我修改流文件使用“ReplaceText”并创建一个INSERT语句.我已经在MySQL数据库中测试了该语句,并且该语句有效.

这是声明:

    INSERT INTO monitor.security_nifi (RemoteIPAddress,Timestamp,RequestUrl,Status,Instance) 
VALUES ('10.129.2.35','2016-09-2016:44:16,347','/secure/Dashboard.jspa','PASSED','35');

当它通过处理器时,我不断收到此错误:

failed to process session due to java.lang.IndexOutOfBoundsException:
Index:1,Size:1: java.lang.IndexOutOfBoundsException: Index:1,Size:1

这是堆栈跟踪:

2016-09-21 10:41:24,658 WARN [Timer-Driven Process Thread-1] o.a.n.c.t.ContinuallyRunProcessorTask
java.lang.IndexOutOfBoundsException: Index: 1,Size: 1 at
java.util.ArrayList.rangeCheck(ArrayList.java:653) ~[na:1.8.0_101] at
java.util.ArrayList.get(ArrayList.java:429) ~[na:1.8.0_101] at
org.apache.nifi.processors.standard.PutSQL.onTrigger(PutSQL.java:304)
~[na:na] at
org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
~[nifi-api-1.0.0.jar:1.0.0] at
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1064)
~[nifi-framework-core-1.0.0.jar:1.0.0] at
org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:136)
[nifi-framework-core-1.0.0.jar:1.0.0] at
org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:47)
[nifi-framework-core-1.0.0.jar:1.0.0] at
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:132)
[nifi-framework-core-1.0.0.jar:1.0.0] at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[na:1.8.0_101] at
java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
[na:1.8.0_101] at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
[na:1.8.0_101] at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
[na:1.8.0_101] at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[na:1.8.0_101] at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[na:1.8.0_101] at java.lang.Thread.run(Thread.java:745)
[na:1.8.0_101]

最佳答案
这看起来像是隐藏实际问题的错误.尝试将PutSQL处理器的“支持分段事务”属性设置为“false”.这应该可以防止Index Out of Bounds Exception,但也可以揭示一个可以纠正的真正问题.如果这是真的(存在另一个问题并且已得到纠正),您可以将属性值恢复为“true”并运行而不会出现错误.

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。