Ocasionalmente algo ir� mal en el lado del servidor, tanto si es debido a una implementaci�n err�nea del servidor, una m�la solicitud del cliente, o quiz�s s�lo dificultades en operaciones normales. La especificaci�n SOAP proporciona la comuniciac�n de estos errores a trav�s del elemento SOAP Fault body dentro del SOAP Envelope. El servidor Apache SOAP intentar� capturar un estado de error y luego construir un mensaje de fallo SOAP que contiene un conjunto de informaci�n base sobre el error ocurrido. Sin embargo, alguna veces es �til aumentar la informaci�n de fallos para un servicio particular o para realizar una o m�s tareas adicionales cuando se alcanza el estado de error. Para permitir este tipo de flexibilidad, el servidor Apache SOAP proporciona un mecanismo de manejo de errores conectable con el que se podr�an registrar uno o m�s oyentes de Fault para procesar los errores. (Este mecanismo de control de errores conectable de Apache SOAP funciona sobre el modelo evento/oyente).
Apache SOAP proporciona dos manejadores de fallos b�sicos:
- org.apache.soap.server.DOMFaultListener
- org.apache.soap.server.ExceptionFaultListner
Los dos mejoran el mensaje SOAP Fault con informaci�n adicional sobre el fallo, el primero a�adiendo un elemento DOM que representa la excepci�n ra�z ocurrida, y el segundo envolviendo la excepci�n ra�z en un Parameter. La mayor�a de la gente encontrar� m�s �til la primera.
�Registrar Manejadores de Fallos
Los manejadores de fallos se registran incluyendo uno m�s elementos <faultListener> en el descriptor de despliegue de un servicio. Para m�s informaci�n sobre la adici�n de manejadores de errores en el descriptor de despliegue, mira aqu�.
�Crear Nuevos Manejadores de Fallos
La creaci�n de un nuevo manejador de fallos es tan simple como crear una clase Java que implemente el interface org.apache.soap.server.SOAPFaultListener. El �nico m�todo que necesitamos implementar fault, acepta un SOAPFaultEvent. El SOAPFaultEvent envuelve los objetos SOAP Fault y SOAP Exception que fueron creados en el error. Una vez que hemos creado el manejador de error, necesitaremos registrarlo como se indica arriba.