1SOAP::WSDL::Server(3) User Contributed Perl DocumentationSOAP::WSDL::Server(3)
2
3
4

NAME

6       SOAP::WSDL::Server - WSDL based SOAP server base class
7

SYNOPSIS

9       Don't use directly, use the SOAP::WSDL::Server::* subclasses instead.
10

DESCRIPTION

12       SOAP::WSDL::Server basically follows the architecture sketched below
13       (though dispatcher classes are not implemented yet)
14
15        SOAP Request           SOAP Response
16              |                     ^
17              V                     |
18         ------------------------------------------
19        |       SOAP::WSDL::Server                 |
20        |  --------------------------------------  |
21        | | Transport Class                      | |
22        | |--------------------------------------| |
23        | | Deserializer       | Serializer      | |
24        | |--------------------------------------| |
25        | | Dispatcher                           | |
26        |  --------------------------------------  |
27         ------------------------------------------
28             | calls                 ^
29             v                       | returns
30          -------------------------------------
31         |   Handler                           |
32          -------------------------------------
33
34       All of the components (Transport class, deserializer, dispatcher and
35       serializer) are implemented as plugins.
36
37       The architecture is not implemented as planned yet, but the dispatcher
38       is currently part of SOAP::WSDL::Server, which aggregates serializer
39       and deserializer, and is subclassed by transport classes (of which
40       SOAP::WSDL::Server::CGI is the only implemented one yet).
41
42       The dispatcher is currently based on the SOAPAction header. This does
43       not comply to the WS-I basic profile, which declares the SOAPAction as
44       optional.
45
46       The final dispatcher will be based on wire signatures (i.e. the classes
47       of the deserialized messages).
48
49       A hash-based dispatcher could be implemented by examining the top level
50       hash keys.
51

EXCEPTION HANDLING

53   Builtin exceptions
54       SOAP::WSDL::Server handles the following errors itself:
55
56       In case of errors, a SOAP Fault containing an appropriate error message
57       is returned.
58
59       •   XML parsing errors
60
61       •   Configuration errors
62
63   Throwing exceptions
64       The proper way to throw a exception is just to die -
65       SOAP::WSDL::Server::CGI catches the exception and sends a SOAP Fault
66       back to the client.
67
68       If you want more control over the SOAP Fault sent to the client, you
69       can die with a SOAP::WSDL::SOAP::Fault11 object - or just let the
70       SOAP::Server's deserializer create one for you:
71
72        my $soap = MyServer::SomeService->new();
73
74        die $soap->get_deserializer()->generate_fault({
75           code => 'SOAP-ENV:Server',
76           role => 'urn:localhost',
77           message => "The error message to pas back",
78           detail => "Some details on the error",
79        });
80
81       You may use any other object as exception, provided it has a
82       serialize() method which returns the object's XML representation.
83
84   Subclassing
85       To write a transport-specific SOAP Server, you should subclass
86       SOAP::WSDL::Server.
87
88       See the "SOAP::WSDL::Server::*" modules for examples.
89
90       A SOAP Server must call the following method to actually handle the
91       request:
92
93       handle
94
95       Handles the SOAP request.
96
97       Returns the response message as XML.
98
99       Expects a "HTTP::Request" object as only parameter.
100
101       You may use any other object as parameter, as long as it implements the
102       following methods:
103
104       •   header
105
106           Called as header('SOAPAction'). Must return the corresponding HTTP
107           header.
108
109       •   content
110
111           Returns the request message
112
114       Copyright 2004-2008 Martin Kutter.
115
116       This file is part of SOAP-WSDL. You may distribute/modify it under the
117       same terms as perl itself
118

AUTHOR

120       Martin Kutter <martin.kutter fen-net.de>
121

REPOSITORY INFORMATION

123        $Rev: 391 $
124        $LastChangedBy: kutterma $
125        $Id: Client.pm 391 2007-11-17 21:56:13Z kutterma $
126        $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Client.pm $
127
128
129
130perl v5.32.1                      2021-01-27             SOAP::WSDL::Server(3)
Impressum