Diese Regel markiert Aufrufe der Methoden, die SOAP-Fehler und -Zeichenfolgen abrufen. Die Standardfehlercodes und -zeichenfolgen, die von den Laufzeitumgebungen von Web-Services zurückgegeben werden, haben sich in WebSphere Application Server Version 8 geändert.
Die folgenden Methoden werden markiert:
Die Änderungen an den Standardfehlercodes und -zeichenfolgen wurden vorgenommen, um ein potenzielles Sicherheitsrisiko in Bezug auf Web-Services, die XML-Verschlüsselung verwenden, zu beseitigen. Im Rahmen der Korrektur werden detaillierte Informationen aus allen SOAP-Fehlern entfernt, die von der Laufzeitumgebung von Web-Services generiert werden. Standardmäßig vereinheitlichen die Laufzeitumgebungen von Web-Services in Version 8 alle von der Laufzeitumgebung generierten Fehler zu einem einzigen Fehlertyp, der den Fehlercode soapenv:Server und die Fehlerzeichenfolge Internal Error enthält.
Wenn Ihre Anwendung detaillierte Informationen von den Fehlercodes und -zeichenfolgen der Laufzeitumgebung erwartet, müssen Sie Ihre Anwendung möglicherweise ändern. Zum Ändern des Standardverhaltens können Sie auch die angepasste JVM-Eigenschaft webservices.unify.faults verwenden. Um die Anwendung auf das Verhalten des vorherigen Release zurückzusetzen, setzen Sie webservices.unify.faults auf false.
Vor WebSphere Application Server Version 8 wurden standardmäßig detaillierte Informationen im Fehlercode bzw. in der Fehlerzeichenfolge zurückgegeben. Dieses Problem wurde auch in den Servicedatenströmen, einschließlich 6.0.2, 6.1, und 7.0 behoben, aber das Standardverhalten in diesen Releases bleibt unverändert. Für die Service-Releases hat webservices.unify.faults den Standardwert false. Ändern Sie den Wert in true, um dasselbe Verhalten wie in Version 8 in diesen Releases zu erhalten.
JAX-WS-Beispiel:|
import javax.xml.ws.soap.SOAPFaultException; import javax.xml.ws.soap.SOAPFault; try { // some code that causes a fault ... } catch (SOAPFaultException e) { SOAPFault soapFault = e.getFault(); String faultCode = soapFault.getFaultCode(); String faultString = soapFault.getFaultString(); ... } |
|
import javax.xml.rpc.soap.SOAPFaultException; import javax.xml.namespace.QName; try { // some code that causes a fault ... } catch (SOAPFaultException e) { QName faultCode = e.getFaultCode(); String faultString = e.getFaultString(); ... } |
In beiden Beispielen werden Aufrufe der Methoden getFaultCode() und getFaultString() markiert.
Weitere Informationen finden Sie in den folgenden Dokumenten: