我正在使用IBM Integration Bus v10(以前称为IBM Message Broker)将COBOL例程公开为SOAP Web服务。 COBOL例程通过MQ队列集成到IIB中。IBM Integration Bus:找不到指定应用程序的PIF数据
我们在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向导生成了它们,并且消息解析工作正常。问题只在于序列化。
有没有人知道这里可能会丢失什么?
这是正确的。在我的情况下,以下帮助: SET OutputRoot.Properties.MessageType ='{}:ElectronicVouchers'; SET OutputRoot.Properties.MessageSet ='{DFDL}'; 其中“ElectronicVouchers”是我的消息的名称,{}是因为它位于默认代理模式中。 花括号中的'DFDL'是MessageSet库的名称。 我从以下使用kimberts建议中发现的值。这在IBM知识库中没有很好地记录。 – kirenpillay