Categories: Software

SOAP::Lite Web Service erweitern

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>

Page: 1 2 3 4 5

ZDNet.de Redaktion

Recent Posts

Dezember-Patchday: Microsoft schließt Zero-Day-Lücke

Die öffentlich bekannte und bereits ausgenutzte Schwachstelle erlaubt eine Rechteausweitung. Betroffen sind alle unterstützten Versionen…

1 Woche ago

Quantencomputer: Google meldet Durchbruch bei Fehlerkorrektur

Der neue Quantenchip Willow löst eine Herausforderung, an der seit 30 Jahren gearbeitet wird. Google…

1 Woche ago

OpenAI veröffentlicht KI-Video-Tool Sora

Es erstellt kurze Videoclips aus Textaufforderungen. Sora steht ab sofort Abonnenten von ChatGPT Plus und…

1 Woche ago

KI-Modell „Made in Germany“

Telekom bietet als erstes Unternehmen kommerzielles Angebot mit Teuken-7B von OpenGPT-X.

1 Woche ago

Studie: Mitarbeiterverhalten verursacht IT-Sicherheitsrisiken

Zur Arbeitserleichterung umgehen Mitarbeiter unter anderem Cybersicherheitsrichtlinien. Dazu gehört wie Wiederverwendung von Kennwörtern für geschäftliche…

1 Woche ago

Lichtgeschwindigkeit für generative KI

Optiktechnologie könnte elektrische Verbindungen in Rechenzentren ersetzen und so Geschwindigkeit und Energieeffizienz für KI erheblich…

2 Wochen ago