Buscar un cambio de comportamiento en las series y los códigos de error SOAP de servicios web

Esta regla marca las llamadas a los métodos que recuperan series y errores SOAP. Las series y los códigos de error predeterminados devueltos por los entornos de ejecución de servicios web han cambiado en WebSphere Application Server V8.

En concreto, se marcan los siguientes métodos:

Los cambios en las series y los códigos de error predeterminados se han realizado para solucionar un posible riesgo de seguridad relacionado con los servicios web que utilizan el cifrado XML. Como parte del arreglo, se elimina información detallada del error SOAP generado por el entorno de ejecución de servicios web. De forma predeterminada en la versión 8, los entornos de ejecución de servicios web unifican todos los errores generados por el entorno de ejecución en un solo tipo de error que contiene un código de error soapenv:Server y una serie de error de Error interno.

Si la aplicación espera información detallada de series o códigos de error del entorno de ejecución, es posible que deba modificar la aplicación. También puede utilizar la propiedad personalizada de la máquina virtual Java webservices.unify.faults para cambiar el comportamiento predeterminado. Para volver al comportamiento del release anterior, establezca webservices.unify.faults en false.

En las versiones anteriores a WebSphere Application Server V8, el comportamiento predeterminado es devolver información detallada en la serie o el código de error. Este problema se ha solucionado también en las secuencias de servicios que incluyen 6.0.2, 6.1 y 7.0, pero el comportamiento predeterminado en estos releases se mantiene sin cambios. Para los releases de servicio, webservices.unify.faults tiene un valor predeterminado false. Cambie el valor por true para obtener el mismo comportamiento que la versión 8 en estos releases.

Ejemplo de JAX-WS:
import javax.xml.ws.soap.SOAPFaultException;
import javax.xml.ws.soap.SOAPFault;

try {
// un código que genera un error
...
} catch (SOAPFaultException e) {
SOAPFault soapFault = e.getFault();
String faultCode = soapFault.getFaultCode();
String faultString = soapFault.getFaultString();
...
}


Ejemplo de JAX-RPC:
import javax.xml.rpc.soap.SOAPFaultException;
import javax.xml.namespace.QName;

try {
// un código que genera un error
...
} catch (SOAPFaultException e) {
QName faultCode = e.getFaultCode();
String faultString = e.getFaultString();
...
}

En ambos ejemplos, se marcarán las llamadas a los métodos getFaultCode() y getFaultString().

Para obtener información adicional, consulte: