Estoy trabajando en alguna aplicación basada en servicios web y tengo una pregunta sobre el desajuste de Apache CXF. En nuestro proyecto utilizamos la versión CXF 2.4.1.Sobrescribir la gestión de errores CXF
Cuando alguna solicitud SOAP es incorrecta (por ejemplo, algún campo es texto en lugar de numérica) CXF lanza SOAPFaultException estándar y respuesta SOAP se construye con los campos estándar como:
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Unmarshalling Error: some field missing</faultstring>
</soap:Fault>
requisitos del proyecto dice que en caso de cualquier sistema de fallas tiene que responder en otro formato, como:
<soap:body>
<ResponseState>
<ErrorCode>2732</ErrorCode>
<ErrorMessage>Unmarshalling Error: some field missing</ErrorMessage>
<ErrorDetails> some details </ErrorDetails>
<some other fields>
...
</ResponseState>
</soap:body>
Entonces la pregunta es: ¿cómo puedo anular de alguna manera esta gestión de errores y responder en mi formato, no por defecto?
Gracias de antemano.
P.S. Traté de ver algunos principios de ValidationEventHandler, pero funciona de alguna otra forma en CXF 2.0 y superior.
Gracias por resumir la investigación que ha realizado sobre este tema. Ahora estoy enfrentando un desafío similar. – Withheld