【问题标题】:Talend tCreateTable error: NullPointerExceptionTalend tCreateTable 错误:NullPointerException
【发布时间】:2018-03-08 20:50:48
【问题描述】:

尝试使用 Talend 在 SQL Server Mgmt Studio 的本地实例中创建表,最终目标是为 ETL 设置直接 Salesforce-SSMS 连接。

我已经设法将数据从 SFDC 加载到 SSMS 中,但只能通过首先手动创建表、在 tMap 中手动映射架构,然后运行我的工作。

我现在想在 SSMS 中使用 tCreateTable 组件创建表,然后使用 AutoMap 功能来映射字段。

但是,我收到一个对我来说毫无意义的空指针异常错误。调试第 370 行显示我的 dbSchema_tCreateTable_1 对象为空,但我不明白为什么。我已经从存储库中定义了它。下面是我设置的一些图片:

Sample Schema

Error Message and Job Design

Line 370 and suspect in Red

我知道我的数据库连接很好,因为我已经将数据推送到现有表中,但是对于我(和我的 2 位 Java 工程师)的一生来说,我无法弄清楚这一点。我有 5 天的 Talend 经验,如果我犯了一个愚蠢的错误,我深表歉意。任何帮助将不胜感激!

编辑:Component view of tCreateTable

编辑 2:Component view of tFixedFlowInput

编辑 3:Component view of tMSSqlOutput

编辑 4:tMSSqlConnection

【问题讨论】:

  • 嗨,Ethan,您能否从示例架构定义中的列中删除默认值 0(将其留空,无空格),然后重试?
  • @iMezouar 仍然不起作用,同样的 NPE 错误。我可以提供其他有用的屏幕截图吗?
  • 能否请您发布组件的 tCreateTable 视图?
  • @iMezouar 当然是在编辑中添加的。如果您需要更多信息,请告诉我
  • 这对我来说似乎没问题。现在您能否在您的 tMSSqlConnection 和 tCreateTable 之间添加一个 OnSubjobOk 触发器?

标签: nullpointerexception etl talend


【解决方案1】:

在第一个作业(在错误消息和作业设计中提供)发生 NPE,因为当 tCreateTable 尝试调用 null.executeStatement() 时,连接仍未创建(为 null) 你可以修改你的第一个工作把 tMsSQLConnection -> OnSubjobOK -> tCreateTable 或者完全删除连接元素并将连接参数设置为 tCreateTable。

如果没有帮助,请回答以下问题:

请分享使用第二个作业时出现异常堆栈跟踪和错误消息(连接 -> tFixedFlowInput - tMSSQLOutput) 你用过什么版本的工作室(Open Studio 或企业版)? 如果它不是最新的(6.5.1)你能升级它吗? 如果是,您可以导出您的工作并分享吗? (即在 talend 错误跟踪器上)

附:可以尝试自己调试job,选择Run Job -> Debug Run -> Java Debug

使用 eclipse 调试视图可以找出 NPE 发生的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多