Talend自定义组件:即使组件正在运行,主模式猜测器也会失败

时间:2019-07-12 10:42:42

标签: java components talend

我正在开发一个自定义的Talend组件,以从怪异的API中获取数据。

我选择创建一个“输入”组件,该组件负责执行一些工作并将结果行发送到下一个。

到目前为止,一切正常,但是我无法使“猜测模式”按钮起作用...


我的Talend组件分为两个主要过程:

  1. 从API提取文件
  2. 解析结果文件,然后将结果发送到下一个组件

当我做一些测试时,我只是禁用了第一步(这需要很多时间)来处理已经下载的文件。我可以加快工作速度,因为我知道获取部分已经在工作...

此刻“猜测模式”按钮正在正常工作!

当我完成第二步的开发时,我只是重新激活了第一步,以查看一切是否从一开始就起作用。 是的。 但是现在我的“猜测模式”不再起作用了……

也许是因为API调用花费了太多时间?并超时?

  • =>不,即使我提出了非常快速的请求,它也会中断得很快,但是会中断。

也许无法在“猜测模式”过程中进行外部调用吗?

  • =>可能是,但是没有文档,我在整个Internet上爬了4天...禁用API调用后,事情就可以了。如果我只打一个电话,即使我不使用结果,它也会中断。

通过搜索解决方案,我发现some posts谈论的@DiscoverSchema听起来不错,可以用来编写自定义的“ Guess Schema”算法。但是我尝试了所有事情(我想),而我的@DiscoverSchema方法总是被忽略...

也许您知道这是如何工作的?

  • 是否可以通过对我的代码进行任何更改来在默认的“ Guess Schema”例程中进行外部调用?
  • 是否可以定义自定义的“ Guess Schema”算法而不是默认算法?
  • 或者,如果没有解决方案,是否可以简单地隐藏“ Guess Schema”按钮?

非常感谢您能为我提供帮助,我现在很绝望...


以下一些信息可能会有所帮助:

  • 我正在使用Talend v7.1.1
  • 我正在使用Talend组件SDK v1.1.11
  • 以下是我正在使用的按钮的屏幕截图: component config screenshot
  • 这是“ Guess Schema”失败时出现的错误:
java.lang.reflect.InvocationTargetException
    at org.talend.sdk.component.studio.ui.guessschema.GuessSchemaRunnable.run(GuessSchemaRunnable.java:51)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)
Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Jul 12, 2019 11:34:34 AM org.apache.axis.utils.JavaUtils isAttachmentSupported
WARNING: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
    at java.util.concurrent.FutureTask.report(Unknown Source)
    at java.util.concurrent.FutureTask.get(Unknown Source)
    at org.talend.sdk.component.studio.ui.guessschema.GuessSchemaRunnable.run(GuessSchemaRunnable.java:49)
    ... 1 more
Caused by: java.lang.IllegalStateException: Jul 12, 2019 11:34:34 AM org.apache.axis.utils.JavaUtils isAttachmentSupported
WARNING: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
    at org.talend.sdk.component.studio.ui.guessschema.TaCoKitGuessSchemaProcess$Task.call(TaCoKitGuessSchemaProcess.java:135)
    at org.talend.sdk.component.studio.ui.guessschema.TaCoKitGuessSchemaProcess$Task.call(TaCoKitGuessSchemaProcess.java:1)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

0 个答案:

没有答案