lite.html
来自「perl教程」· HTML 代码 · 共 1,152 行 · 第 1/5 页
HTML
1,152 行
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../displayToc.js"></script>
<script language="JavaScript" src="../../tocParas.js"></script>
<script language="JavaScript" src="../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../scineplex.css">
<title>SOAP::Lite - Client and server side SOAP implementation</title>
<link rel="stylesheet" href="../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>
<body>
<script>writelinks('__top__',2);</script>
<h1><a>SOAP::Lite - Client and server side SOAP implementation</a></h1>
<p><a name="__index__"></a></p>
<!-- INDEX BEGIN -->
<ul>
<li><a href="#name">NAME</a></li>
<li><a href="#synopsis">SYNOPSIS</a></li>
<li><a href="#description">DESCRIPTION</a></li>
<ul>
<li><a href="#where_to_find_examples">WHERE TO FIND EXAMPLES</a></li>
</ul>
<li><a href="#overview_of_classes_and_packages">OVERVIEW OF CLASSES AND PACKAGES</a></li>
<ul>
<li><a href="#soap__lite">SOAP::Lite</a></li>
<li><a href="#soap__data">SOAP::Data</a></li>
<li><a href="#soap__serializer">SOAP::Serializer</a></li>
<li><a href="#soap__som">SOAP::SOM</a></li>
<li><a href="#soap__schema">SOAP::Schema</a></li>
<li><a href="#soap__trace">SOAP::Trace</a></li>
<li><a href="#soap__fault">SOAP::Fault</a></li>
<li><a href="#soap__constants">SOAP::Constants</a></li>
</ul>
<li><a href="#features_and_options">FEATURES AND OPTIONS</a></li>
<ul>
<li><a href="#default_settings">DEFAULT SETTINGS</a></li>
<li><a href="#in_out__out_parameters_and_autobinding">IN/OUT, OUT PARAMETERS AND AUTOBINDING</a></li>
<li><a href="#autodispatching_and_soap___prefix">AUTODISPATCHING AND SOAP:: PREFIX</a></li>
<li><a href="#accessing_headers_and_envelope_on_server_side">ACCESSING HEADERS AND ENVELOPE ON SERVER SIDE</a></li>
<li><a href="#service_deployment__static_and_dynamic">SERVICE DEPLOYMENT. STATIC AND DYNAMIC</a></li>
<li><a href="#security">SECURITY</a></li>
<li><a href="#compression">COMPRESSION</a></li>
<li><a href="#objectsbyreference">OBJECTS-BY-REFERENCE</a></li>
<li><a href="#interoperability">INTEROPERABILITY</a></li>
<li><a href="#troubleshooting">TROUBLESHOOTING</a></li>
<li><a href="#performance">PERFORMANCE</a></li>
<li><a href="#webhosting_installation">WEBHOSTING INSTALLATION</a></li>
</ul>
<li><a href="#bugs_and_limitations">BUGS AND LIMITATIONS</a></li>
<li><a href="#platforms">PLATFORMS</a></li>
<li><a href="#availability">AVAILABILITY</a></li>
<li><a href="#see_also">SEE ALSO</a></li>
<li><a href="#acknowledgments">ACKNOWLEDGMENTS</a></li>
<li><a href="#copyright">COPYRIGHT</a></li>
<li><a href="#author">AUTHOR</a></li>
</ul>
<!-- INDEX END -->
<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>SOAP::Lite - Client and server side SOAP implementation</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<pre>
<span class="keyword">use</span> <span class="variable">SOAP::Lite</span><span class="operator">;</span>
<span class="keyword">print</span> <span class="variable">SOAP::Lite</span>
<span class="operator">-></span> <span class="variable">uri</span><span class="operator">(</span><span class="string">'http://www.soaplite.com/Temperatures'</span><span class="operator">)</span>
<span class="operator">-></span> <span class="variable">proxy</span><span class="operator">(</span><span class="string">'http://services.soaplite.com/temper.cgi'</span><span class="operator">)</span>
<span class="operator">-></span> <span class="variable">f2c</span><span class="operator">(</span><span class="number">32</span><span class="operator">)</span>
<span class="operator">-></span> <span class="variable">result</span><span class="operator">;</span>
</pre>
<p>The same code with autodispatch:</p>
<pre>
<span class="keyword">use</span> <span class="variable">SOAP::Lite</span> <span class="operator">+</span><span class="string">autodispatch</span> <span class="operator">=></span>
<span class="string">uri</span> <span class="operator">=></span> <span class="string">'http://www.soaplite.com/Temperatures'</span><span class="operator">,</span>
<span class="string">proxy</span> <span class="operator">=></span> <span class="string">'http://services.soaplite.com/temper.cgi'</span><span class="operator">;</span>
</pre>
<pre>
<span class="keyword">print</span> <span class="variable">f2c</span><span class="operator">(</span><span class="number">32</span><span class="operator">);</span>
</pre>
<p>Code in OO-style:</p>
<pre>
<span class="keyword">use</span> <span class="variable">SOAP::Lite</span> <span class="operator">+</span><span class="string">autodispatch</span> <span class="operator">=></span>
<span class="string">uri</span> <span class="operator">=></span> <span class="string">'http://www.soaplite.com/Temperatures'</span><span class="operator">,</span>
<span class="string">proxy</span> <span class="operator">=></span> <span class="string">'http://services.soaplite.com/temper.cgi'</span><span class="operator">;</span>
</pre>
<pre>
<span class="keyword">my</span> <span class="variable">$temperatures</span> <span class="operator">=</span> <span class="variable">Temperatures</span><span class="operator">-></span><span class="variable">new</span><span class="operator">(</span><span class="number">32</span><span class="operator">);</span> <span class="comment"># get object</span>
<span class="keyword">print</span> <span class="variable">$temperatures</span><span class="operator">-></span><span class="variable">as_celsius</span><span class="operator">;</span> <span class="comment"># invoke method</span>
</pre>
<p>Code with service description:</p>
<pre>
<span class="keyword">use</span> <span class="variable">SOAP::Lite</span><span class="operator">;</span>
<span class="keyword">print</span> <span class="variable">SOAP::Lite</span>
<span class="operator">-></span> <span class="variable">service</span><span class="operator">(</span><span class="string">'http://www.xmethods.net/sd/StockQuoteService.wsdl'</span><span class="operator">)</span>
<span class="operator">-></span> <span class="variable">getQuote</span><span class="operator">(</span><span class="string">'MSFT'</span><span class="operator">);</span>
</pre>
<p>Code for SOAP server (CGI):</p>
<pre>
<span class="keyword">use</span> <span class="variable">SOAP::Transport::HTTP</span><span class="operator">;</span>
<span class="variable">SOAP::Transport::HTTP::CGI</span>
<span class="operator">-></span> <span class="variable">dispatch_to</span><span class="operator">(</span><span class="string">'/Your/Path/To/Deployed/Modules'</span><span class="operator">,</span> <span class="string">'Module::Name'</span><span class="operator">,</span> <span class="string">'Module::method'</span><span class="operator">)</span>
<span class="operator">-></span> <span class="variable">handle</span><span class="operator">;</span>
</pre>
<p>Visual Basic client (through COM interface):</p>
<pre>
MsgBox CreateObject("SOAP.Lite").new( _
"proxy", "<a href="http://services.xmethods.net/soap"">http://services.xmethods.net/soap"</a>;, _
"uri", "urn:xmethods-delayed-quotes" _
).getQuote("MSFT").result</pre>
<p>mod_soap enabled SOAP server:</p>
<pre>
.htaccess</pre>
<pre>
SetHandler perl-script
PerlHandler Apache::SOAP
PerlSetVar dispatch_to "/Your/Path/To/Deployed/Modules, Module::Name"</pre>
<p>ASP/VB SOAP server:</p>
<pre>
<%
Response.ContentType = "text/xml"
Response.Write(Server.CreateObject("SOAP.Lite") _
.server("SOAP::Server") _
.dispatch_to("/Your/Path/To/Deployed/Modules") _
.handle(Request.BinaryRead(Request.TotalBytes)) _
)
%></pre>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p>SOAP::Lite is a collection of Perl modules which provides a
simple and lightweight interface to the Simple Object Access Protocol
(SOAP) both on client and server side.</p>
<p>This version of SOAP::Lite supports the SOAP 1.1 specification ( <a href="http://www.w3.org/TR/SOAP">http://www.w3.org/TR/SOAP</a> ).</p>
<p>The main features of the library are:</p>
<ul>
<li>
<p>Supports SOAP 1.1 spec.</p>
</li>
<li>
<p>Interoperability tests with different implementations: Apache SOAP, Frontier,
Microsoft SOAP, Microsoft .NET, DevelopMentor, XMethods, 4s4c, Phalanx,
Kafka, SQLData, Lucin (in Java, Perl, C++, Python, VB, COM, XSLT).</p>
</li>
<li>
<p>Provides COM interface. Single dll (standalone [2.5MB] or minimal [32kB]).
Works on Windows 9x/Me/NT/2K. Doesn't require ROPE or MSXML.
Examples in VB, Excel/VBA, C#, ASP, JavaScript, PerlScript and Perl.</p>
</li>
<li>
<p>Provides transparent compression support for HTTP transport.</p>
</li>
<li>
<p>Provides mod_soap module. Make SOAP server with a few lines in .htaccess
or .conf file.</p>
</li>
<li>
<p>Includes XML::Parser::Lite (regexp-based XML parser) which runs instead
of XML::Parser where Perl 5.6 runs (even on WinCE) with some limitations.</p>
</li>
<li>
<p>Includes XMLRPC::Lite, implementation of XML-RPC protocol on client and
server side. All transports and features of SOAP::Lite are available.</p>
</li>
<li>
<p>Supports multipart/form-data MIME attachments.</p>
</li>
<li>
<p>Supports circular linked lists and multiple references.</p>
</li>
<li>
<p>Supports Map datatype (encoding of maps/hashes with arbitrary keys).</p>
</li>
<li>
<p>Supports HTTPS protocol.</p>
</li>
<li>
<p>Provides proxy support.</p>
</li>
<li>
<p>Provides CGI/daemon/mod_perl/Apache::Registry server implementations.</p>
</li>
<li>
<p>Provides TCP server implementation.</p>
</li>
<li>
<p>Provides IO (STDIN/STDOUT/File) server implementation.</p>
</li>
<li>
<p>Provides FTP client implementation.</p>
</li>
<li>
<p>Supports single/multipart MIME attachment (parsing side only).</p>
</li>
<li>
<p>Supports SMTP protocol.</p>
</li>
<li>
<p>Provides POP3 server implementation.</p>
</li>
<li>
<p>Supports M-POST and redirects in HTTP transport.</p>
</li>
<li>
<p>Supports Basic/Digest server authentication.</p>
</li>
<li>
<p>Works with CGI accelerators, like VelociGen and PerlEx.</p>
</li>
<li>
<p>Supports UDDI interface on client side. See UDDI::Lite for details.</p>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?