如何在CXF中解组错误时检索字段名称?

时间:2011-05-05 20:15:38

标签: cxf field unmarshalling fault

前提条件:基于CXF的服务接收带有数据的请求/响应,这违反了XSD限制。

实际行为: 在这种情况下,CXF会返回错误消息,如:

  

cvc-maxLength-valid:对于类型为'XSDStringTypeWithLengthRestriction'的maxLength'13',长度为''28'的值'string_length_violated_value'不是facet-valid

目标: 将故障返回给使用包含无效数据的字段名称的使用者。 F.E.像这样的东西:

  

来自提供商的响应包含无效数据。对于maxLength'13',字段'field_name'的值'string_length_violated_value'不是facet-valid。

我想知道是否可能,如果可能,那么如何确定(从哪里检索)这个字段名称?

1 个答案:

答案 0 :(得分:2)

我不确定这是否会完全奏效,但你可以尝试一下:

您可以创建JAXB ValidationEventHandler并在端点上注册它。

它获得的ValidationEvent具有基本字符串(您在上面看到)和其他信息。我会在那里放一个断点并深入研究这个事件,看看是否有任何其他有用的信息。