1

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

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

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

目标:使用包含无效数据的字段名称向消费者返回故障。像这样的东西:

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

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

4

1 回答 1

2

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

您可以创建一个 JAXB ValidationEventHandler 并将其注册到您的端点上。

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

于 2011-05-05T20:41:35.973 回答