【问题标题】:Catch jaxb unmarshal exception of the binding object捕获绑定对象的 jaxb 解组异常
【发布时间】:2013-01-14 17:29:09
【问题描述】:

我使用 cxf 的 jaxb 来解组 xml 请求。

我正在寻找一种验证输入xml请求的方法,我已经阅读了以下两篇关于验证的超级文章,但它们并不是我所需要的。

http://blog.bdoughan.com/2010/11/validate-jaxb-object-model-with-xml.html

http://blog.bdoughan.com/2010/12/jaxb-and-marshalunmarshal-schema.html

实际上,与其立即停止整个解组过程并在响应中返回异常消息,我需要解组过程继续运行,并且能够将异常与未验证 xml 元素的对象链接起来。这样,应用程序仍然可以在除此之外的其他未编组的对象上执行下一项工作,在返回的 xml 响应的最后,我可以显示此特定对象的异常消息,以及良好的结果其他物体。

这可能吗?

非常感谢任何帮助,

【问题讨论】:

    标签: validation exception jaxb cxf unmarshalling


    【解决方案1】:

    您可以在Unmarshaller 上设置ValidationEventCollector 的实例。它将存储解组期间遇到的所有ValidationEvent 实例。在unmarshal 操作之后,如果它收集到任何事件,那么您可以选择抛出一个Exception

    顺便说一句,我很高兴听到您喜欢这些帖子。

    【讨论】:

    • 感谢您的回复和您的超级文章,我会试试看。
    • ValidationEventCollector 能否判断哪个对象获得了异常?比如像下面的xml,validationEventCollector能告诉第一人的生日日期格式不正确吗? fadsfdas12/02/2012
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多