前提条件:基于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。
我想知道是否可能,如果可能,那么如何确定(从哪里检索)这个字段名称?
答案 0 :(得分:2)
我不确定这是否会完全奏效,但你可以尝试一下:
您可以创建JAXB ValidationEventHandler并在端点上注册它。
它获得的ValidationEvent具有基本字符串(您在上面看到)和其他信息。我会在那里放一个断点并深入研究这个事件,看看是否有任何其他有用的信息。