首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用于处理具有多个XML模式的消息的Java模式

用于处理具有多个XML模式的消息的Java模式
EN

Stack Overflow用户
提问于 2016-05-04 18:27:29
回答 2查看 61关注 0票数 1

我有一个监听队列的Java程序。队列中的消息是XML格式的。但是每条消息可以有不同的模式。我希望我的程序读取消息,并根据模式将控制权传递给适当的处理器。有可能做到这一点吗?如果是,我应该使用哪种Java模式?一些伪代码会很有帮助。

EN

回答 2

Stack Overflow用户

发布于 2016-05-04 19:34:18

对于单纯的分派来说,完整的XML解析代价很高。嗅探是一种成本较低的替代方案。但是,请考虑使用消息头或消息属性来传递足够的信息,以便在不需要直接检查XML的情况下进行调度。

票数 0
EN

Stack Overflow用户

发布于 2016-05-05 10:41:11

如果您可以访问生产者,请让生产者使用有效负载表示的消息类型为JMSType JMS属性设置一个值,然后在收到消息后,测试此属性,然后按应该的方式处理有效负载。

另一种选择是从您可以接收的所有可能的xml有效负载的xsd (模式)生成JAXB类,然后创建一个JAXBContext,它可以处理与可能的有效负载对应的所有"jaxb root类“,解组有效负载并测试由解组程序创建的对象的类:

JAXBContext jc = JAXBContext.newInstance(A.class,B.class,C.class);解组程序u= jc.createUnmarshaller();对象o=u.unmarshal(来自消息的有效负载文本);if (o A.class实例) ...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37035296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文