Я использую IBM Integration Bus v10 (ранее называвшийся IBM Message Broker), чтобы предоставлять подпрограммы COBOL как веб-службы SOAP. Подпрограммы COBOL интегрируются в IIB через очереди MQ.
Мы импортировали некоторые записные книжки COBOL как схемы DFDL в IIB, и сопоставление между сообщениями 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, и синтаксический анализ сообщений работает хорошо. Проблема только в сериализации.
Кто-нибудь знает, чего здесь может не хватать?