1

我正在使用 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

4 回答 4

4

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

于 2015-11-20T15:07:58.803 回答
1

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

于 2015-11-11T19:12:06.830 回答
0

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

于 2016-04-21T12:16:45.390 回答
-1

您需要创建静态库并参考应用程序。在计算节点中,你的编码是基于 dfdl body

于 2017-02-16T13:24:11.073 回答