';消息无法解析或不是字段';Talend ESB的tmoOutput中出错

';消息无法解析或不是字段';Talend ESB的tmoOutput中出错,talend,talend-mdm,Talend,Talend Mdm,我正在使用TalendESB open studio的tMomOutput组件将XML消息插入Apache活动MQ 使用XMLMap组件创建XML文档 使用tConvertType组件将XML文档转换为字符串 使用tMomOutput组件将字符串消息从tConvertType发送到活动MQ队列 它在tMomOutput组件处给了我以下编译错误 org.talend.designer.runprocess.ProcessorException:作业编译错误 至少作业“MQJobDemo”有编译错误

我正在使用TalendESB open studio的tMomOutput组件将XML消息插入Apache活动MQ

  • 使用XMLMap组件创建XML文档
  • 使用tConvertType组件将XML文档转换为字符串
  • 使用tMomOutput组件将字符串消息从tConvertType发送到活动MQ队列
  • 它在tMomOutput组件处给了我以下编译错误

    org.talend.designer.runprocess.ProcessorException:作业编译错误
    至少作业“MQJobDemo”有编译错误,请修复并再次导出。
    错误行:1238
    
    详细信息:信息无法解析或不是字段

    如果没有您的工作快照或工作流程描述,我将根据我的个人经验推断此问题的原因

    当您试图引用某个不是作业“活动”部分的输入流或变量时,就会发生这种情况。考虑下面的流程:

    tOracleInput--Main1->tMap--Main2->tOracleOutput

    这里Main1和Main2分别是输入流和输出流。现在,如果Main1被重命名为“message”,那么将任何传入字段(比如ID)引用为message.ID就可以了。但是,如果您尝试在tMap中引用与messag.ID相同的字段,则会出现错误:messag无法解析或不是字段。这是因为“messag”没有引用任何实体


    因此,我的建议是检查作业中使用该引用变量的所有实例,以及该特定引用变量是否在任何地方都可用。

    根据您的场景,它会给您带来错误,因为您没有从输入组件将任何字段映射到
    tMOMOutput
    。将
    tMap
    放在
    t转换类型
    和tMomOutput之间


    您也可以通过另一种方式来实现,添加
    tMap
    组件,同时将XML文档映射到
    tMomOuput
    将输出端变量设置为
    string
    。这样您就不必专门使用
    tConvertType

    有一个编译错误
    是一个有用的提示创建一个(请参阅)。我在tConvertType和tMoOutput之间添加了tMap,并映射了相应的字段,它成功了!