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

Forscher entwickeln Exploits per GPT-4 aus Sicherheitswarnungen

Die Tests basieren auf tatsächlich existierenden Sicherheitslücken. GPT-4 erreicht eine Erfolgsquote von 87 Prozent. Alle…

1 Woche ago

HostPress für Agenturen und E-Commerce-Betreiber

Höchste Performance-Standards für Webseiten und ein persönlicher, kundenorientierter Premium Support.

1 Woche ago

V-NAND: Samsung steigert Bit-Dichte um 50 Prozent

Die neue V-NAND-Generation bietet die derzeit höchste verfügbare Bit-Dichte. Samsung steigert auch die Geschwindigkeit und…

1 Woche ago

Bericht: Google entwickelt App-Quarantäne für Android

Die Sicherheitsfunktion taucht in einer Beta eines kommenden Android-Updates auf. Die Quarantäne beendet unter anderem…

1 Woche ago

Kostenloser Kurs zum Ausbau von Low-Code-Programmierung

Die OutSystems Developer School hilft Entwicklern, in 2 Wochen komplexe reaktive Anwendungen mit der Low-Code-Plattform…

1 Woche ago

Cloudflare: DNS-basierte DDoS-Angriffe steigen im ersten Quartal um 80 Prozent

Das Jahr 2024 beginnt laut Cloudflare mit einem Paukenschlag. Die automatischen Systeme des Unternehmens wehren…

1 Woche ago