当前位置: 首页 > 知识库问答 >
问题:

捕获绑定对象的jaxb解组异常

柴昆杰
2023-03-14

我使用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响应的最后,我可以显示此特定对象的异常消息,以及其他对象的良好结果。

可能吗?

非常感谢您的帮助,

共有1个答案

慕宏博
2023-03-14

您可以在Unmarshaller上设置ValidationEventCollector的实例。它将存储散集期间出现的所有ValidationEvent实例。在散集操作之后,如果它收集了任何事件,那么您可以选择抛出一个异常

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

 类似资料:
  • 我有 和Xlink类,该类在内联变量中工作良好。 对于的XML输入 并且子课程拒绝被取消注册(没有任何异常被抛出)。 注:不幸的是,MOXy不是一个选项。 编辑:新编组对象 Edit2:在对测试对象进行了一些解组和编组的实验之后,我发现我需要在内容的标题中定义xmlns名称空间,以便与类似问题在于,我从一个包装类中获取Course元素,该包装类由resteasy解析出来。因此,生成的类不会携带名称

  • 当在testng单元testcase中运行时,JAXB将XML文件解组到对象中工作正常。 当相同的代码被用来在另一个进程中解封相同的XML文件时,我得到了一个空对象。我可以验证对象是为XML文档中的每个元素创建的,并且所有适配器都被调用。在unmarshaller中设置事件处理程序,但没有验证问题。当我设置xmlns属性和前缀时,即使返回空对象,行为也略有不同。 我看了好几篇文章,但都无法与我面临

  • 我已经创建了一个自定义转换器来将字符串转换回日期。 基本上,如果字符串不可解析,将引发RuntimeException。

  • 在尝试调用SimpleDateFormat构造函数时,我得到了一个未捕获的异常: 堆栈跟踪是: 02-15 15:55:31.999 276 69-27669/com.clackityClack.parseProject W/DalvikVM:ThreadId=1:线程退出未捕获异常(Group=0x40E76300)02-15 15:55:32.077 276 69-27669/com.clac

  • 首先来看最最普通的一个 json 解析的例子(被解析的 json 字符串是错误的,缺少一个双引号): -- http://www.kyne.com.au/~mark/software/lua-cjson.php -- version: 2.1 devel local json = require("cjson") local str = [[ {"key:"value"} ]] local

  • 我试图解组xml导致saxparser异常,因为元素的值有一个未正确关闭的标记元素。这是我得到的,我必须处理的。 这里是示例xml- 上面的xml和其他字符串一起作为命令的值,标签没有正确关闭,导致以下异常- [org.xml.sax.saxpasseeption;行号:1;列号:212;元素类型“ctag”后面必须跟有属性规范,” 将xml输入作为字符串阅读器提供给unMarshall 我有两个