#dom #weblogic-10.x #xmlbeans #message-driven-bean #weblogic-integration
#dom #weblogic-10.x #xmlbeans #компонент, управляемый сообщениями #weblogic-интеграция
Вопрос:
У меня есть процесс из Weblogic 10.3, который принимает XmlObject, записывает некоторые значения из этого XmlObject в таблицу, а затем передает этот xml в очередь JMS.
public void clientRequest(org.apache.xmlbeans.XmlObject x0) {
this.newMail = x0;
}
Как только я получаю xml, я затем анализирую его, чтобы получить значения данных, выполняю действия по созданию нового документа и заполняю новый weblogic.jms.extensions.XMLMessage с этим документом для отправки в очередь.
XMLmsg = qcon2.createXMLMessage();
..
Create Document elements
..
..
..
XMLmsg.setDocument(doc);
qsender.send(XMLmsg);
Мой вопрос в том, почему я не могу просто передать xmlbeans.XmlObject непосредственно в JMSQueue? Или, по крайней мере, извлеките документ из входящего XML, затем поместите его во вновь созданный weblogic.jms.extensions.XMLMessage, чтобы его можно было передать в очередь.
Я пробовал что-то в этом роде, но все, что я получаю обратно, это java.lang.Исключение NullPointerException
Document doc = (Document) newMail.getDomNode();
Однако, вероятно, это как-то связано со следующим случаем, который никогда не является истинным… есть идеи? Какова наилучшая практика здесь? Спасибо
node.getNodeType() == node.DOCUMENT_TYPE_NODE
Ответ №1:
Хотя, возможно, это не лучшая практика, я просто устанавливаю текст XML-сообщения во входящий XML.
XMLmsg.setText(newMail.toString());
qsender.send(XMLmsg);
Другим решением было бы выполнить преобразование XML и сохранить их в переменные. Хотя у моего процесса не было причин для этого.