IBM Integration Bus:找不到指定应用程序的PIF数据

时间:2015-11-02 20:38:00

标签: soap ibm-integration-bus dfdl

我正在使用IBM Integration Bus v10(以前称为IBM Message Broker)将COBOL例程公开为SOAP Web服务。 COBOL例程通过MQ队列集成到IIB中。

我们在IIB中导入了一些COBOL副本作为DFDL模式,SOAP消息和DFDL消息之间的映射工作正常。

但是,当消息到达必须进行消息树序列化的节点(例如,FileOutput或MQ请求)时,它将失败并显示以下错误:

"The PIF data could not be found for the specified application"

这是异常的堆栈跟踪的最后一部分:

RecoverableException
    File:CHARACTER:F:\build\slot1\S000_P\src\DataFlowEngine\TemplateNodes\ImbOutputTemplateNode.cpp
    Line:INTEGER:303
    Function:CHARACTER:ImbOutputTemplateNode::processMessageAssemblyToFailure
    Type:CHARACTER:ComIbmFileOutputNode
    Name:CHARACTER:MyCustomFlow#FCMComposite_1_5
    Label:CHARACTER:MyCustomFlow.File Output
    Catalog:CHARACTER:BIPmsgs
    Severity:INTEGER:3
    Number:INTEGER:2230
    Text:CHARACTER:Caught exception and rethrowing
    Insert
        Type:INTEGER:14
        Text:CHARACTER:Kcilmw20Flow.File Output
    ParserException
        File:CHARACTER:F:\build\slot1\S000_P\src\MTI\MTIforBroker\DfdlParser\ImbDFDLWriter.cpp
        Line:INTEGER:315
        Function:CHARACTER:ImbDFDLWriter::getDFDLSerializer
        Type:CHARACTER:ComIbmSOAPInputNode
        Name:CHARACTER:MyCustomFlow#FCMComposite_1_7
        Label:CHARACTER:MyCustomFlow.SOAP Input
        Catalog:CHARACTER:BIPmsgs
        Severity:INTEGER:3
        Number:INTEGER:5828
        Text:CHARACTER:The PIF data could not be found for the specified application
        Insert
            Type:INTEGER:5
            Text:CHARACTER:MyCustomProject

我的可部署BAR文件中似乎缺少某些内容。说我的应用程序有消息流并且它取决于具有所有.xsd文件(DFDL)的共享库是很重要的。

我认为模式是正常的,因为我已经使用Toolkit向导生成了模式,并且消息解析效果很好。问题仅在于序列化。

有人知道这里可能缺少什么吗?

4 个答案:

答案 0 :(得分:2)

OutputRoot.Properties.MessageType必须包含DFDL架构中的消息名称。此外,当DFDL模式位于共享库中时,OutputRoot.Properties.MessageSet必须包含库的名称。

答案 1 :(得分:1)

听起来好像OutputRoot.Properties没有指向共享库。我不记得哪个子域执行该作业 - 它是OutputRoot.Properties.MessageType或OutputRoot.Properties.MessageSet。 您可以轻松检查 - 只需在使用相同共享库的输入节点之后检查InputRoot.Properties的内容。

答案 2 :(得分:0)

面临类似的问题。在我的例子中,带有HttpRequest节点的消息流使用DFDL域解析器/格式来解析来自远程系统的HTTP响应引发了此错误(无法找到指定应用程序的PIF数据)。 “重新选择”相同的解析器域&节点上的消息类型后跟build / redeploy解决了问题。似乎是IIB工具包中的项目参考相关问题。

答案 3 :(得分:-1)

您需要创建静态库并引用应用程序。 在计算节点中,ur编码基于dfdl body