Es gibt viele SOAP Faults (Fehlermeldungen), die SOAP::Lite für Sie erzeugen kann. Falls jemand z.B. eine Methode aufruft, die im Dispatch-Handler nicht definiert ist, würde SOAP::Lite eine SOAP Fault mit etwa dem folgenden Fault-String zurückgeben: Failed To Locate Method (Foo) In Class (Echo). Es gibt noch weitere SOAP Faults, die SOAP::Lite für Sie automatisch erzeugt. Viele davon werden Ihnen beim Experimentieren mit SOAP::Lite begegnen. Leider sind es einfach zu viele, um sie alle hier aufzuführen.
Aber was ist mit Anwendungsfehlern, die SOAP::Lite noch nicht abfangen kann und für die es deshalb auch keine SOAP Faults zurückgibt? Erfahrene Perl-Programmierer, die mit der die()-Funktion von Perl vertraut sind, die ein Perl-Programm abbricht und eine entsprechende Fehlermeldung an STDERR ausgibt, werden keine Schwierigkeit haben, SOAP Faults von ihren Web Services erzeugen zu lassen. Durch die einfache Verwendung der die()-Funktion im Kontext eines Service erzeugt SOAP::Lite automatisch die jeweilige Fehlermeldung und gibt sie als SOAP Fault zurück.
Eine schlichte Fehlermeldung an die() zu übergeben, liefert natürlich nicht den aussagekräftigsten Output. Wenn man allerdings ein SOAP::Fault-Objekt an die die()-Funktion übergibt, kann man jeden oder alle dieser Werte setzen: fault code, fault string, fault actor und fault details. SOAP::Lite verwandelt automatisch das SOAP::Fault-Objekt in eine gültige SOAP Fault. Das folgende Code-Beispiel kann überall innerhalb eines Request-Handlers verwendet werden, um die entsprechende SOAP Fault zurückzugeben:
die SOAP::Fault->faultcode('Server.MyFaultCode') ->faultstring('The echo service died') ->faultdetail(bless {code => 1} => 'BadError') ->faultactor('http://$YOUR_NAMESPACE_$HERE');
Resultierende SOAP Fault
<xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/ encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:namesp1="http://namespaces.soaplite.com/perl"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode xsi:type="xsd:string">SOAP-ENV:Server. MyFaultCode</faultcode> <faultstring xsi:type="xsd:string">The echo service died</ faultstring> <detail> <BadError xsi:type="namesp1:BadError"> <code xsi:type="xsd:int">1</code> </BadError> </detail> <faultactor xsi:type="xsd:string">http://$YOUR_NAMESPACE_ $HERE</faultactor> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Die öffentlich bekannte und bereits ausgenutzte Schwachstelle erlaubt eine Rechteausweitung. Betroffen sind alle unterstützten Versionen…
Der neue Quantenchip Willow löst eine Herausforderung, an der seit 30 Jahren gearbeitet wird. Google…
Es erstellt kurze Videoclips aus Textaufforderungen. Sora steht ab sofort Abonnenten von ChatGPT Plus und…
Telekom bietet als erstes Unternehmen kommerzielles Angebot mit Teuken-7B von OpenGPT-X.
Zur Arbeitserleichterung umgehen Mitarbeiter unter anderem Cybersicherheitsrichtlinien. Dazu gehört wie Wiederverwendung von Kennwörtern für geschäftliche…
Optiktechnologie könnte elektrische Verbindungen in Rechenzentren ersetzen und so Geschwindigkeit und Energieeffizienz für KI erheblich…