0

我有一个来自 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 中提取 Document,然后将其放入新创建的 weblogic.jms.extensions.XMLMessage 中,以便将其传递到队列中。

我已经尝试过这种性质的东西,但我得到的只是 java.lang.NullPointerException

Document doc = (Document) newMail.getDomNode();

但是,这可能与以下案例永远不真实有关……有什么想法吗?这里的最佳做法是什么?谢谢

node.getNodeType() == node.DOCUMENT_TYPE_NODE
4

1 回答 1

0

虽然可能不是最佳实践,但我只是将 XML 消息的文本设置为传入的 XML。

XMLmsg.setText(newMail.toString());
qsender.send(XMLmsg);

另一种解决方案是进行 XML 翻译并将它们存储到变量中。虽然我的过程没有理由。

于 2011-12-13T15:03:01.273 回答