Я пытаюсь разобрать ответное сообщение веб-службы в следующем формате (дерево сообщений):
Message
Properties
Properties..[]
DFDL
ObjectIWantUnmarshalled
AllItsDataIwant[]
И отключите "ObjectIWantUnmarshalled". Однако эти данные находятся в формате DFDL. В моем запросе я использую следующую строку для форматирования из XML в DFDL:
Document outDocument = outMessage.createDOMDocument(MbDFDL.PARSER_NAME);
Но, похоже, нет пути к обратному, DFDL для XML. Я пытался:
Document outDocument = inMessage.createDOMDocument(MbXMLNSC.PARSER_NAME);
Помимо других попыток просто отключить данные непосредственно из MbMessage:
jaxbContext_COBOL.createUnmarshaller().unmarshal(inMessage.getDOMDocument())
Но я не смог получить узел Document таким образом или любым другим способом, он всегда равен нулю.
Наверное, слишком поздно, но вы делали это неправильно.
При использовании WMB и IIB вы должны использовать встроенную поддержку XML, а не библиотеку классов javax.XML. *. Поэтому вместо использования JMXB unmarshaller вы должны
... и поток сообщений будет сериализовать (unmarshall) дерево как XML всякий раз, когда это необходимо - когда он встречает выходной узел или когда вы вызываете outMessage.toBitstream().