Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SOAP::WSDL::Server::MoUserrContributed Perl DoSOAP::WSDL::Server::Mod_Perl2(3)

NAME
       SOAP::WSDL::Server::Mod_Perl2 - mod_perl	based SOAP server using
       SOAP::WSDL

DESCRIPTION
       Perl module providing a mod_perl2-based SOAP server using SOAP::WSDL

CONFIGURATION
       Configuration is	managed	through	the use	of PerlSetVar directives.  The
       following variables are available:

   dispatch_to
       Takes as	a single argument the package name of the module which
       contains	the methods which handle SOAP requests.

	PerlSetVar dispatch_to "WebPackage::SOAPMethods"

   soap_service
       Takes as	a single argument the package name of the Server module
       generated by SOAP::WSDL using

	wsdl2perl.pl --server file:///path/to/your/wsdl

       By default, the name of the package is
       MyServer::$SERVICENAME::$PORTTYPE.

       EXAMPLE:	Given this sample WSDL which wsdl2perl.pl was run against to
       generate	perl packages:

	   <wsdl:portType name="WebServiceSoap">
	       [...]
	   </wsdl:portType>

	   [...]

	   <wsdl:service name="WebService">
	       <wsdl:port name="WebServiceSoap"	binding="tns:WebServiceSoap">
		   <soap:address location="http://www.example.com/WebService"/>
	       </wsdl:port>
	   </wsdl:service>

       The following directive would be	correct:

	   PerlSetVar soap_service "MyServer::WebService::WebServiceSoap"

   transport_class [OPTIONAL]
       Takes as	a single argument the package name of the perl module
       containing a handle() method used to assemble the HTTP request which
       will be passed to the methods in	your dispatch_to module	(see above). A
       default handle()	method is supplied in this module which	should handle
       most common cases.

       handle()	is called with the following parameters:

	$r - Apache::RequestRec	object

EXAMPLES
       The following snippet added to httpd.conf will enable a SOAP server at
       /WebService on your webserver:

	   <Location /WebService>
	       SetHandler perl-script
	       PerlResponseHandler SOAP::WSDL::Server::Mod_Perl2
	       PerlSetVar dispatch_to "WebPackage::SOAPMethods"
	       PerlSetVar soap_service "MyServer::WebService::WebServiceSoap"
	   </Location>

PERFORMANCE
       On my machine, a	simple SOAP server (the	HelloWorld service from	the
       examples) needs around 20s to process 300 requests to a CGI script
       implemented with	SOAP::WSDL::Server::CGI, around	4.5s to	the same CGI
       with mod_perl enabled, and around 3.2s with
       SOAP::WSDL::Server::Mod_Perl2. All these	figures	include	the time for
       creating	the request and	parsing	the response.

       As general advice, using	mod_perl is highly recommended in high-
       performance environments. Using SOAP::WSDL::Server::Mod_Perl2 yields an
       extra 20% speedup compared with mod_perl	enabled	CGI scripts - and it
       allows one to configure SOAP servers in the Apache config.

THREAD SAFETY
       SOAP::WSDL uses Class::Std::Fast, which is not guaranteed to be
       threadsafe yet. Thread safety in	Class::Std::Fast is dependent on
       whether

	my $foo	= $bar++;

       is an atomic operation. I haven't found out yet.

       A load test on a	single CPU machine with	4 clients using	the worker mpm
       did not reveal any threading issues - but that does not mean there are
       none.

CREDITS
       Contributed (along with lots of other little improvements) by Noah
       Robin.

       Thanks!

LICENSE	AND COPYRIGHT
       This file is part of SOAP-WSDL. You may distribute/modify it under the
       same terms as perl itself

AUTHOR
       Noah Robin <noah.robin gmail.com>

       Based on	SOAP::WSDL::Server::CGI, by Martin Kutter <martin.kutter
       fen-net.de>

REPOSITORY INFORMATION
	$Rev: 583 $
	$LastChangedBy:	kutterma $
	$Id: $
	$HeadURL: $

perl v5.32.0			  2020-01-20  SOAP::WSDL::Server::Mod_Perl2(3)

NAME | DESCRIPTION | CONFIGURATION | EXAMPLES | PERFORMANCE | THREAD SAFETY | CREDITS | LICENSE AND COPYRIGHT | AUTHOR | REPOSITORY INFORMATION

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=SOAP::WSDL::Server::Mod_Perl2&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help