Pentaho Kettle 在 JAVA 应用程序中嵌入转换错误处理

问题描述 投票:0回答:1

我正在使用包含“数据验证器”和“用户定义的 Java 表达式”步骤的简单转换来测试 kettle-sdk-embedding-sample

其中一项测试包括处理垃圾数据以验证错误处理。根据数据的不同,两个步骤之一会出现错误。我预计会引发并捕获异常的是主要调用 java 函数here,但实际上并非如此。在引擎盖下的某个地方引发并捕获异常,并记录堆栈跟踪(请参见下面的示例)。永远不会到达应用程序的捕获代码。

这是故意设计的吗?有没有办法配置引擎向应用程序抛出异常以进行自定义错误处理?如果不是,引擎代码在哪里完成?我没能看到它在哪里完成,看看是否有办法处理它

谢谢你

[2023/11/27 15:43:00 - User defined Java expression.0 - ERROR (version 9.4.0.1-467, build 0.0 from 2023-03-30 03.02.48 by buildguy) : Unexpected error
\[2m2023-11-27T15:43:00.670+01:00\[0;39m \[31mERROR\[0;39m \[35m30800\[0;39m \[2m---\[0;39m \[2m\[Java expression\]\[0;39m \[36morg.pentaho.di.trans.Trans              \[0;39m \[2m:\[0;39m \[etl/Chargement.ktr\]  Unexpected error
2023/11/27 15:43:00 - User defined Java expression.0 - ERROR (version 9.4.0.1-467, build 0.0 from 2023-03-30 03.02.48 by buildguy) : org.pentaho.di.core.exception.KettleException: 
2023/11/27 15:43:00 - User defined Java expression.0 - org.pentaho.di.core.exception.KettleValueException: 
2023/11/27 15:43:00 - User defined Java expression.0 - java.lang.reflect.InvocationTargetException
2023/11/27 15:43:00 - User defined Java expression.0 -  at java.lang.Thread.run (Thread.java:833)
2023/11/27 15:43:00 - User defined Java expression.0 -  at org.pentaho.di.trans.step.RunThread.run (RunThread.java:62)
2023/11/27 15:43:00 - User defined Java expression.0 -  at org.pentaho.di.trans.steps.janino.Janino.processRow (Janino.java:104)
2023/11/27 15:43:00 - User defined Java expression.0 -  at org.pentaho.di.trans.steps.janino.Janino.calcFields (Janino.java:191)
2023/11/27 15:43:00 - User defined Java expression.0 -  at org.codehaus.janino.ExpressionEvaluator.evaluate (ExpressionEvaluator.java:533)
2023/11/27 15:43:00 - User defined Java expression.0 -  at org.codehaus.janino.ExpressionEvaluator.evaluate (ExpressionEvaluator.java:541)
2023/11/27 15:43:00 - User defined Java expression.0 -  at java.lang.reflect.Method.invoke (Method.java:568)
2023/11/27 15:43:00 - User defined Java expression.0 -  at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
2023/11/27 15:43:00 - User defined Java expression.0 -  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
2023/11/27 15:43:00 - User defined Java expression.0 -  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (NativeMethodAccessorImpl.java:-2)
2023/11/27 15:43:00 - User defined Java expression.0 - 
2023/11/27 15:43:00 - User defined Java expression.0 - 
2023/11/27 15:43:00 - User defined Java expression.0 - java.lang.reflect.InvocationTargetException
2023/11/27 15:43:00 - User defined Java expression.0 -  at java.lang.Thread.run (Thread.java:833)
2023/11/27 15:43:00 - User defined Java expression.0 -  at org.pentaho.di.trans.step.RunThread.run (RunThread.java:62)
2023/11/27 15:43:00 - User defined Java expression.0 -  at org.pentaho.di.trans.steps.janino.Janino.processRow (Janino.java:104)
2023/11/27 15:43:00 - User defined Java expression.0 -  at org.pentaho.di.trans.steps.janino.Janino.calcFields (Janino.java:191)
2023/11/27 15:43:00 - User defined Java expression.0 -  at org.codehaus.janino.ExpressionEvaluator.evaluate (ExpressionEvaluator.java:533)
2023/11/27 15:43:00 - User defined Java expression.0 -  at org.codehaus.janino.ExpressionEvaluator.evaluate (ExpressionEvaluator.java:541)
2023/11/27 15:43:00 - User defined Java expression.0 -  at java.lang.reflect.Method.invoke (Method.java:568)
2023/11/27 15:43:00 - User defined Java expression.0 -  at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
2023/11/27 15:43:00 - User defined Java expression.0 -  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
2023/11/27 15:43:00 - User defined Java expression.0 -  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (NativeMethodAccessorImpl.java:-2)
2023/11/27 15:43:00 - User defined Java expression.0 - 
2023/11/27 15:43:00 - User defined Java expression.0 - 
2023/11/27 15:43:00 - User defined Java expression.0 -     at org.pentaho.di.trans.steps.janino.Janino.processRow(Janino.java:113)
2023/11/27 15:43:00 - User defined Java expression.0 -     at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62)
2023/11/27 15:43:00 - User defined Java expression.0 -     at java.base/java.lang.Thread.run(Thread.java:833)
2023/11/27 15:43:00 - User defined Java expression.0 - Caused by: org.pentaho.di.core.exception.KettleValueException: 
2023/11/27 15:43:00 - User defined Java expression.0 - java.lang.reflect.InvocationTargetException
2023/11/27 15:43:00 - User defined Java expression.0 -  at java.lang.Thread.run (Thread.java:833)
2023/11/27 15:43:00 - User defined Java expression.0 -  at org.pentaho.di.trans.step.RunThread.run (RunThread.java:62)
2023/11/27 15:43:00 - User defined Java expression.0 -  at org.pentaho.di.trans.steps.janino.Janino.processRow (Janino.java:104)
2023/11/27 15:43:00 - User defined Java expression.0 -  at org.pentaho.di.trans.steps.janino.Janino.calcFields (Janino.java:191)
2023/11/27 15:43:00 - User defined Java expression.0 -  at org.codehaus.janino.ExpressionEvaluator.evaluate (ExpressionEvaluator.java:533)
2023/11/27 15:43:00 - User defined Java expression.0 -  at org.codehaus.janino.ExpressionEvaluator.evaluate (ExpressionEvaluator.java:541)
2023/11/27 15:43:00 - User defined Java expression.0 -  at java.lang.reflect.Method.invoke (Method.java:568)
2023/11/27 15:43:00 - User defined Java expression.0 -  at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
2023/11/27 15:43:00 - User defined Java expression.0 -  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
2023/11/27 15:43:00 - User defined Java expression.0 -  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (NativeMethodAccessorImpl.java:-2)
2023/11/27 15:43:00 - User defined Java expression.0 - 
2023/11/27 15:43:00 - User defined Java expression.0 -     at org.pentaho.di.trans.steps.janino.Janino.calcFields(Janino.java:220)
2023/11/27 15:43:00 - User defined Java expression.0 -     at org.pentaho.di.trans.steps.janino.Janino.processRow(Janino.java:104)
2023/11/27 15:43:00 - User defined Java expression.0 -     ... 2 more
2023/11/27 15:43:00 - User defined Java expression.0 - Caused by: java.lang.reflect.InvocationTargetException
2023/11/27 15:43:00 - User defined Java expression.0 -     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2023/11/27 15:43:00 - User defined Java expression.0 -     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2023/11/27 15:43:00 - User defined Java expression.0 -     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2023/11/27 15:43:00 - User defined Java expression.0 -     at java.base/java.lang.reflect.Method.invoke(Method.java:568)
2023/11/27 15:43:00 - User defined Java expression.0 -     at org.codehaus.janino.ExpressionEvaluator.evaluate(ExpressionEvaluator.java:541)
2023/11/27 15:43:00 - User defined Java expression.0 -     at org.codehaus.janino.ExpressionEvaluator.evaluate(ExpressionEvaluator.java:533)
2023/11/27 15:43:00 - User defined Java expression.0 -     at org.pentaho.di.trans.steps.janino.Janino.calcFields(Janino.java:191)
2023/11/27 15:43:00 - User defined Java expression.0 -     ... 3 more
2023/11/27 15:43:00 - User defined Java expression.0 - Caused by: java.lang.NullPointerException: Cannot read field "value" because "original" is null
2023/11/27 15:43:00 - User defined Java expression.0 -     at java.base/java.lang.String.<init>(String.java:260)
2023/11/27 15:43:00 - User defined Java expression.0 -     at SC.eval0(Unknown Source)
2023/11/27 15:43:00 - User defined Java expression.0 -     ... 10 more][2]
java spring-boot pentaho kettle
1个回答
0
投票

您是否尝试过在“错误处理”流程中处理错误/异常?在 Pentaho Data Validator 步骤中,您可以使用错误处理步骤来处理错误。阅读这篇博文,了解有关 Pentaho 中的错误处理的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.