SOAP::WSDL::Factory::Transport - Factory for retrieving transport objects |
SOAP::WSDL::Factory::Transport - Factory for retrieving transport objects
# from SOAP::WSDL::Client: $transport = SOAP::WSDL::Factory::Transport->get_transport( $url, @opt );
# in transport class: package MyWickedTransport; use SOAP::WSDL::Factory::Transport; # register class as transport module for httpr and https # (httpr is "reliable http", a protocol developed by IBM). SOAP::WSDL::Factory::Transport->register( 'httpr' , __PACKAGE__ ); SOAP::WSDL::Factory::Transport->register( 'https' , __PACKAGE__ ); =head1 DESCRIPTION
SOAP::WSDL::Transport serves as factory for retrieving transport objects for SOAP::WSDL.
The actual work is done by specific transport classes.
SOAP::WSDL::Transport tries to load one of the following classes:
register()
SOAP::WSDL::Transport->register('https', 'MyWickedTransport');
Globally registers a class for use as transport class.
$trans->proxy('http://soap-wsdl.sourceforge.net');
Sets the proxy (endpoint).
Returns the transport for this protocol.
Sets the current transport object.
Gets the current transport object.
Transport classes must be registered with SOAP::WSDL::Factory::Transport.
This is done by executing the following code where $scheme is the URL scheme the class should be used for, and $module is the class' module name.
SOAP::WSDL::Factory::Transport->register( $scheme, $module);
To auto-register your transport class on loading, execute register()
in your
tranport class (see SYNOPSIS above).
Multiple protocols ore multiple classes are registered by multiple calls to
register()
.
You may only use transport classes whose name is either the module name or the module name with '::Client' appended.
Transport classes must implement the interface required for SOAP::Lite transport classes (see the SOAP::Lite::Transport manpage for details, SOAP::WSDL::Transport::HTTP for an example).
To provide this interface, transport modules must implement the following methods:
Dispatches a request and returns the content of the response.
Returns the status code of the last send_receive call (if any).
Returns the status message of the last send_receive call (if any).
Returns the status of the last send_receive call (if any).
Returns true after a send_receive was successful, false if it was not.
SOAP::Lite requires transport modules to pack client and server classes in one file, and to follow this naming scheme:
Module name: "SOAP::Transport::" . uc($scheme) Client class (additional package in module): "SOAP::Transport::" . uc($scheme) . "::Client" Server class (additional package in module): "SOAP::Transport::" . uc($scheme) . "::Client"
SOAP::WSDL does not require you to follow these restrictions.
There is only one restriction in SOAP::WSDL:
You may only use transport classes whose name is either the module name or the module name with '::Client' appended.
SOAP::WSDL will try to instantiate an object of your transport class with '::Client' appended to allow using transport classes written for SOAP::Lite.
This may lead to errors when a different module with the name of your transport module suffixed with ::Client is also loaded.
Copyright 2004-2007 Martin Kutter.
This file is part of SOAP-WSDL. You may distribute/modify it under the same terms as perl itself
Martin Kutter <martin.kutter fen-net.de>
$Rev: 304 $ $LastChangedBy: kutterma $ $Id: Transport.pm 304 2007-10-02 20:07:21Z kutterma $ $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Factory/Transport.pm $ =cut
SOAP::WSDL::Factory::Transport - Factory for retrieving transport objects |