JMS、XML和异构企业
2010-10-18 09:34:51 来源:WEB开发网核心提示:在接收方有许多事要做(见清单 2),接收了 TextMessage 后,JMS、XML和异构企业(2),代码抽取 XML 并验证它,确认过程根据文档类型定义 (DTD) 来检查 XML,MOM,和 XML 一样,DTD 可以是 XML 的一部分,也可以在它的外部
在接收方有许多事要做(见清单 2)。接收了 TextMessage 后,代码抽取 XML 并验证它。确认过程根据文档类型定义 (DTD) 来检查 XML,DTD 可以是 XML 的一部分,也可以在它的外部。
如果 DTD 是在外部存储的,您很可能要面临创建和维护企业范围的 DTD 资源库。资源库严格定义了共同参加的企业应用程序可以交换的消息的结构。
现在,TextMessage 成为非常有条理、定义明确的消息的“载体”,Java 和非 Java 应用程序都可以理解。
清单 2. 接收 XML 消息的示例
public static String receive( String stringQueue, String stringQueueConnectionFactory, XMLValidator xmlvalidator) throws NamingException, JMSException, XMLValidationException { //在一个名为JNDI和目录服务中查找Queue 和 QueueConnection 类厂,或者直接创建它们 Context context = new InitialContext(); Queue queue = null; queue = (Queue)context.lookup(stringQueue); QueueConnectionFactory queueconnectionfactory = null; queueconnectionfactory = (QueueConnectionFactory)context.lookup(stringQueueConnectionFactory); QueueConnection queueconnection = null; queueconnection = queueconnectionfactory.createQueueConnection(); QueueSession queuesession = null; queuesession = queueconnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); // 创建 QueueReceiver. QueueReceiver queuereceiver = null; queuereceiver = queuesession.createReceiver(queue); //接受一个TextMessage, 提取其中的XML, //并在返回之前验证它。在验证XML和返回之前,将XML转换成一个DOM数或者其它的表示方法也是可以的。 TextMessage textmessage; textmessage = (TextMessage)queuereceiver.receive(); String stringXML = textmessage.getText(); xmlvalidator.validate(stringXML); return stringXML; }
似乎大家有了共识,认为面向消息的中间件(JMS 是其一部分)和 XML 属于一起的。我希望我的论述为这个提法增添了说服力。它并不是那么出人意外的。XML 文档是真实的消息 -- 它们是结构化的,但仍具有相当的灵活性。另外,MOM,和 XML 一样,擅长集成异构应用程序。
更多精彩
赞助商链接