| 1 |
<?xml version="1.0"?> |
|---|
| 2 |
<!DOCTYPE html |
|---|
| 3 |
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
|---|
| 4 |
"DTD/xhtml1-strict.dtd"> |
|---|
| 5 |
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> |
|---|
| 6 |
<head> |
|---|
| 7 |
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> |
|---|
| 8 |
<meta http-equiv="Content-Style-Type" content="text/css" /> |
|---|
| 9 |
<link rev="MADE" href="mailto:nakahiro@sarion.co.jp" /> |
|---|
| 10 |
<link rel="StyleSheet" href="rubyStyle.css" type="text/css" media="screen" /> |
|---|
| 11 |
<title>Release Notes - SOAP4R</title> |
|---|
| 12 |
</head> |
|---|
| 13 |
<body> |
|---|
| 14 |
|
|---|
| 15 |
<div class="header"> |
|---|
| 16 |
<h1> |
|---|
| 17 |
Release Notes - SOAP4R |
|---|
| 18 |
</h1> |
|---|
| 19 |
|
|---|
| 20 |
<p class="status"> |
|---|
| 21 |
Last modified: Sep 15, 2005<br /> |
|---|
| 22 |
Created: July 17, 2000 |
|---|
| 23 |
</p> |
|---|
| 24 |
</div> |
|---|
| 25 |
|
|---|
| 26 |
<hr /> |
|---|
| 27 |
|
|---|
| 28 |
<div class="main"> |
|---|
| 29 |
<h2><span class="content">0. In this document...</span></h2> |
|---|
| 30 |
|
|---|
| 31 |
<p> |
|---|
| 32 |
This is Release Notes of SOAP4R. |
|---|
| 33 |
</p> |
|---|
| 34 |
|
|---|
| 35 |
<p> |
|---|
| 36 |
Target SOAP4R version: SOAP4R/1.5.5 |
|---|
| 37 |
</p> |
|---|
| 38 |
|
|---|
| 39 |
<ol> |
|---|
| 40 |
<li><a href="#changes">Changes</a></li> |
|---|
| 41 |
<li><a href="#install">Install</a></li> |
|---|
| 42 |
<li><a href="#uninstall">Uninstall</a></li> |
|---|
| 43 |
<li><a href="#whats">What is SOAP4R?</a></li> |
|---|
| 44 |
<li><a href="#dependencies">Dependencies</a></li> |
|---|
| 45 |
<li><a href="#samples">Samples</a></li> |
|---|
| 46 |
<li><a href="#restrictions">Restrictions</a></li> |
|---|
| 47 |
<li><a href="#resources">Resources</a></li> |
|---|
| 48 |
<li><a href="#history">History</a></li> |
|---|
| 49 |
<li><a href="#author">Author</a></li> |
|---|
| 50 |
<li><a href="#copyright">Copyright</a></li> |
|---|
| 51 |
</ol> |
|---|
| 52 |
|
|---|
| 53 |
<h2 id="changes" name="changes"><span class="content">1. Changes</span></h2> |
|---|
| 54 |
|
|---|
| 55 |
<p> |
|---|
| 56 |
Here are changes in 1.5.5 from 1.5.4. |
|---|
| 57 |
</p> |
|---|
| 58 |
<ul><li>SOAP |
|---|
| 59 |
<ul><li>allow to configure an envelope namespace of SOAP request. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/124" title="configuable envelope namespace (closed)">#124</a>) |
|---|
| 60 |
<pre class="wiki">TemporaryNamespace = 'http://www.w3.org/2003/05/soap-envelope' |
|---|
| 61 |
@client.options["soap.envelope.requestnamespace"] = TemporaryNamespace |
|---|
| 62 |
@client.options["soap.envelope.responsenamespace"] = TemporaryNamespace |
|---|
| 63 |
@client.do_proc(...) |
|---|
| 64 |
</pre> |
|---|
| 65 |
</li><li>let SOAP request XML indent space configuable. see "soap.envelope.no_indent" option. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/130" title="A server dislike indent spaces in XML instance (closed)">#130</a>) |
|---|
| 66 |
|
|---|
| 67 |
</li><li>let external CES configuable. ex. client["soap.mapping.external_ces"] = 'SJIS'. $KCODE is used by default. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/133" title="let $KCODE free (closed)">#133</a>) |
|---|
| 68 |
<pre class="wiki">external CES ::= CES used in Ruby object of client and server |
|---|
| 69 |
internal CES ::= CES used in SOAP/OM |
|---|
| 70 |
</pre> |
|---|
| 71 |
</li><li>add iso-8859-1 external CES support. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/106" title="iso-8859-1 encoded response (closed)">#106</a>) |
|---|
| 72 |
</li><li>fixed illegal 'qualified' handling of elements. it caused ASP.NET inteoperability problem. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/144" title="soap4r and ASP.NET problems about 'qualified' (closed)">#144</a>) |
|---|
| 73 |
</li><li>added 'soap.envelope.use_numeric_character_reference' (boolean) option to let query XML use numeric character reference in XML, not plain UTF-8 character. GoogleSearch server seems to not allow plain UTF-8 character since 2005-08-15 update. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/147" title="GoogleWebSearch does not work with UTF-8 query (closed)">#147</a>) |
|---|
| 74 |
</li><li>SOAP::Header::SimpleHeader (de)serialization throws an exception on SimpleHeader.on_(in|out)bound when header is a String. so we could not use a simple single element headerItem. fixed. thanks to emil. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/129" title="SOAP::Header::SimpleHeader deserialization throws on ... (closed)">#129</a>) |
|---|
| 75 |
|
|---|
| 76 |
</li><li>out parameter of rpc operation did not work. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/132" title="outparameter causes NameError (closed)">#132</a>) |
|---|
| 77 |
</li><li>follow HTTP redirect only if using http-access2. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/125" title="follow http/https redirection (closed)">#125</a>) (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/145" title="an error from streamHandler.rb:37 that claims an uninitialized constant ... (closed)">#145</a>) |
|---|
| 78 |
</li><li>add a workaround for importing an WSDL whose path begins with drive letter. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/115" title="RuntimeError: Cannot connect to ... (closed)">#115</a>) |
|---|
| 79 |
</li></ul></li><li>WSDL |
|---|
| 80 |
<ul><li>SOAP Data which is defined as a simpletype was not mapped correctly to Ruby obj when using wsdl2ruby.rb generated classdef file. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/123" title="soap4r mapping problem when using google adwords api (closed)">#123</a>) |
|---|
| 81 |
</li><li>rpc/literal support. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/118" title="soap encoding is used for rpc/literal services (closed)">#118</a>) |
|---|
| 82 |
|
|---|
| 83 |
</li><li>re-implemented local element qualify/unqualify control. handles elementFormDefault and form in WSDL. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/119" title="Cannot talk to doc/literal service which is has ... (closed)">#119</a>) |
|---|
| 84 |
</li><li>Array of an element which has simpleType causes a crash. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/128" title="Array of a element which has simpleType causes a crash (closed)">#128</a>) |
|---|
| 85 |
</li><li>prarmeterOrder may not contain return part so it can be shorter than parts size. Thanks to Hugh. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/139" title="prarmeterOrder may not contain return part (closed)">#139</a>) |
|---|
| 86 |
</li></ul></li><li>Samples |
|---|
| 87 |
<ul><li>added BasicAuth client sample. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/117" title="add BasicAuth sample not only in test dir but also in sample dir (closed)">#117</a>) |
|---|
| 88 |
</li><li>added Base64 client/server sample. |
|---|
| 89 |
</li><li>added Flickr SOAP interface client sample. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/122" title="Flickr SOAP API support (closed)">#122</a>) |
|---|
| 90 |
|
|---|
| 91 |
</li><li>added SalesForce client sample. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/135" title="how to set session id in SOAP header (sforce WSDL) (closed)">#135</a>) |
|---|
| 92 |
</li><li>updated Thawte CA certificate for GoogleAdWords sample. |
|---|
| 93 |
</li><li>updated a client script with the newer version made by Johan. thanks! |
|---|
| 94 |
</li><li>shortened long file names. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/120" title="long file name (closed)">#120</a>) |
|---|
| 95 |
</li><li>fixed typo in authheader sample. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/129" title="SOAP::Header::SimpleHeader deserialization throws on ... (closed)">#129</a>) |
|---|
| 96 |
</li><li>updated deprecated method usage. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/138" title="create_driver in sample should be replaced with create_rpc_driver (closed)">#138</a>) |
|---|
| 97 |
</li></ul></li></ul> |
|---|
| 98 |
|
|---|
| 99 |
<p> |
|---|
| 100 |
For details, see ChangeLog. |
|---|
| 101 |
</p> |
|---|
| 102 |
|
|---|
| 103 |
<p> |
|---|
| 104 |
Thanks to all of soap4r ML members and soap4r users for their support. |
|---|
| 105 |
</p> |
|---|
| 106 |
|
|---|
| 107 |
<h2 id="install" name="install"><span class="content">2. Install</span></h2> |
|---|
| 108 |
|
|---|
| 109 |
<p> |
|---|
| 110 |
At first, see <a href="#dependencies">Dependencies</a> section. |
|---|
| 111 |
You may need to install some extra packages. |
|---|
| 112 |
Next, get the archived file of SOAP4R and extract it, then simply try; |
|---|
| 113 |
</p> |
|---|
| 114 |
<pre class="path"> |
|---|
| 115 |
$ ruby install.rb |
|---|
| 116 |
</pre> |
|---|
| 117 |
|
|---|
| 118 |
<p> |
|---|
| 119 |
Necessary files will be installed to suitable directory. |
|---|
| 120 |
</p> |
|---|
| 121 |
|
|---|
| 122 |
<p> |
|---|
| 123 |
Files and directories in lib directory are SOAP4R library program itself. |
|---|
| 124 |
</p> |
|---|
| 125 |
|
|---|
| 126 |
<dl> |
|---|
| 127 |
<dt class="path">lib/</dt> |
|---|
| 128 |
<dd>Libraries.</dd> |
|---|
| 129 |
|
|---|
| 130 |
<dt class="path">sample/</dt> |
|---|
| 131 |
<dd>SOAP4R samples. |
|---|
| 132 |
See <a href="#samples">Samples</a> section.</dd> |
|---|
| 133 |
|
|---|
| 134 |
<dt class="path">test/</dt> |
|---|
| 135 |
<dd>Tests. It also contains useful sample scripts for servers and clients. |
|---|
| 136 |
<br/> |
|---|
| 137 |
test/interopR2/ directory includes Clients/Server for |
|---|
| 138 |
<a href="http://www.xmethods.net/ilab/">`SOAPBuilders Interoperability Lab.'</a> |
|---|
| 139 |
Followings are advanced examples to use complex type transmit, |
|---|
| 140 |
sending base64 encoded string, multi-dimensional array, and so on. |
|---|
| 141 |
<ul> |
|---|
| 142 |
<li>test/interopR2/server.rb is a RPC Server side implementation.</li> |
|---|
| 143 |
<li>test/interopR2/client.rb is a RPC Client side implementation.</li> |
|---|
| 144 |
<li>test/interopR2/base.rb includes common definitions for client/server.</li> |
|---|
| 145 |
</ul> |
|---|
| 146 |
</dd> |
|---|
| 147 |
</dl> |
|---|
| 148 |
|
|---|
| 149 |
<h2 id="uninstall" name="uninstall"><span class="content">3. Uninstall</span></h2> |
|---|
| 150 |
|
|---|
| 151 |
<p> |
|---|
| 152 |
Simply delete installed files. |
|---|
| 153 |
</p> |
|---|
| 154 |
|
|---|
| 155 |
<h2 id="whats" name="whats"><span class="content">4. What is SOAP4R?</span></h2> |
|---|
| 156 |
|
|---|
| 157 |
<p> |
|---|
| 158 |
'SOAP4R' is an implementation of |
|---|
| 159 |
<a href="http://www.w3.org/TR/SOAP/">Simple Object Access Protocol (SOAP) 1.1 (W3C Note)</a>. |
|---|
| 160 |
</p> |
|---|
| 161 |
|
|---|
| 162 |
<p> |
|---|
| 163 |
Comments, information such as interoperability between SOAP4R and another implementation are welcomed. |
|---|
| 164 |
Feel free sending mail to |
|---|
| 165 |
<a href="mailto:nakahiro@sarion.co.jp" class="path">nakahiro@sarion.co.jp</a>. |
|---|
| 166 |
</p> |
|---|
| 167 |
|
|---|
| 168 |
<h2 id="dependencies" name="dependencies"><span class="content">5. Dependencies</span></h2> |
|---|
| 169 |
|
|---|
| 170 |
<p> |
|---|
| 171 |
SOAP4R is written in <a href="http://www.ruby-lang.org">Ruby</a> and |
|---|
| 172 |
aims to use with Ruby application. |
|---|
| 173 |
You have to install Ruby itself. |
|---|
| 174 |
Ruby/1.6 series or later is required. |
|---|
| 175 |
</p> |
|---|
| 176 |
<ul> |
|---|
| 177 |
<li>ruby-1.8.2</li> |
|---|
| 178 |
<li>ruby-1.8.1</li> |
|---|
| 179 |
<li>ruby-1.6.8</li> |
|---|
| 180 |
<li>developing version of ruby-1.9.x at Ruby's CVS repository(HEAD)</li> |
|---|
| 181 |
<li>developing version of ruby-1.8.x at Ruby's CVS repository(ruby_1_8)</li> |
|---|
| 182 |
</ul> |
|---|
| 183 |
|
|---|
| 184 |
<p> |
|---|
| 185 |
SOAP4R depends on following Ruby modules in |
|---|
| 186 |
<a href="http://raa.ruby-lang.org">RAA</a>. |
|---|
| 187 |
You also have to install these modules to use SOAP4R. |
|---|
| 188 |
</p> |
|---|
| 189 |
|
|---|
| 190 |
<h3>for ruby-1.8.2, ruby-1.8.1, developing versions of ruby-1.9.x and ruby-1.8.x</h3> |
|---|
| 191 |
|
|---|
| 192 |
<dl> |
|---|
| 193 |
<dt class="path"><a href="http://raa.ruby-lang.org/project/http-access2/">[RAA:http-access2]</a> (2.0.5) (required for SSL)</dt> |
|---|
| 194 |
<dd>Yet another HTTP client implementation by NaHi. |
|---|
| 195 |
It's not required when you don't use SSL, but it's recommended to use. |
|---|
| 196 |
The author always runs and checks soap4r with http-access2.</dd> |
|---|
| 197 |
|
|---|
| 198 |
<dt class="path"><a href="http://raa.ruby-lang.org/project/uconv/">[RAA:uconv]</a> (0.4.10) (not required but needed if your Ruby doesn't have iconv module and you need UTF-8 encoded Japanese chars)</dt> |
|---|
| 199 |
<dd>by Yoshida Masato. |
|---|
| 200 |
It is requred when you want automatic CES conversion between |
|---|
| 201 |
SJIS <-> UTF8 and EUC <-> UTF8. |
|---|
| 202 |
Note: SJIS <-> EUC uses NKF module which is in standard distribution. |
|---|
| 203 |
</dd> |
|---|
| 204 |
|
|---|
| 205 |
</dl> |
|---|
| 206 |
|
|---|
| 207 |
<h3>for ruby-1.6.8</h3> |
|---|
| 208 |
|
|---|
| 209 |
<dl> |
|---|
| 210 |
<dt class="path"><a href="http://raa.ruby-lang.org/project/webrick/">[RAA:webrick]</a> (1.3.1)</dt> |
|---|
| 211 |
<dd>TCP server toolkit by Gotoyuzo.</dd> |
|---|
| 212 |
|
|---|
| 213 |
<dt class="path"><a href="http://raa.ruby-lang.org/project/http-access2/">[RAA:http-access2]</a> (2.0.5)</dt> |
|---|
| 214 |
<dd>Yet another HTTP client implementation by NaHi.</dd> |
|---|
| 215 |
|
|---|
| 216 |
<dt class="path"><a href="http://raa.ruby-lang.org/project/devel-logger/">[RAA:devel-logger]</a> (1.1.0)</dt> |
|---|
| 217 |
<dd>Logging utility by NaHi.</dd> |
|---|
| 218 |
|
|---|
| 219 |
<dt class="path"><a href="http://raa.ruby-lang.org/project/date2/">[RAA:date2]</a> (3.2)</dt> |
|---|
| 220 |
<dd>Date and DateTime implementation by Todayoshi Funaba.</dd> |
|---|
| 221 |
|
|---|
| 222 |
<dt class="path"><a href="http://raa.ruby-lang.org/project/uconv/">[RAA:uconv]</a> (0.4.10) (required for UTF-8 handling)</dt> |
|---|
| 223 |
<dd>by Yoshida Masato. |
|---|
| 224 |
It is requred when you want automatic CES conversion between |
|---|
| 225 |
SJIS <-> UTF8 and EUC <-> UTF8. |
|---|
| 226 |
Note: SJIS <-> EUC uses NKF module which is in standard distribution. |
|---|
| 227 |
</dd> |
|---|
| 228 |
|
|---|
| 229 |
</dl> |
|---|
| 230 |
|
|---|
| 231 |
<h2 id="samples" name="samples"><span class="content">6. Samples</span></h2> |
|---|
| 232 |
|
|---|
| 233 |
<p> |
|---|
| 234 |
Samples are in sample/ directory of distribution. |
|---|
| 235 |
Some samples try to connect to public servers. |
|---|
| 236 |
Set environment variable SOAP_USE_PROXY and HTTP_PROXY if you are in a firewall and you have |
|---|
| 237 |
http proxy to the internet like; |
|---|
| 238 |
</p> |
|---|
| 239 |
<pre class="path"> |
|---|
| 240 |
$ export SOAP_USE_PROXY=on |
|---|
| 241 |
$ export HTTP_PROXY=http://myproxyserver:8080 |
|---|
| 242 |
or |
|---|
| 243 |
$ setenv SOAP_USE_PROXY on |
|---|
| 244 |
$ setenv HTTP_PROXY http://myproxyserver:8080 |
|---|
| 245 |
</pre> |
|---|
| 246 |
|
|---|
| 247 |
<dl> |
|---|
| 248 |
<dt class="path">soap/</dt> |
|---|
| 249 |
<dd> |
|---|
| 250 |
<dl> |
|---|
| 251 |
<dt class="path">calc/</dt> |
|---|
| 252 |
<dd>Calc service contains 2 servers and 2 clients. |
|---|
| 253 |
calc.rb is hosted by server.rb, calc2.rb is hosted by server2.rb. |
|---|
| 254 |
client.rb is for server.rb, client2.rb is for server2.rb. |
|---|
| 255 |
<dl> |
|---|
| 256 |
<dt>calc.rb</dt> |
|---|
| 257 |
<dd>Calc server definition using module and module methods. |
|---|
| 258 |
This module responds 'add', 'sub', 'multi' and 'div'. |
|---|
| 259 |
</dd> |
|---|
| 260 |
<dt>server.rb</dt> |
|---|
| 261 |
<dd>Standalone server. |
|---|
| 262 |
It requires calc.rb and serve module methods of this module. |
|---|
| 263 |
To run this server; |
|---|
| 264 |
<pre class="path"> |
|---|
| 265 |
$ ./server.rb |
|---|
| 266 |
</pre> |
|---|
| 267 |
</dd> |
|---|
| 268 |
<dt>server.cgi</dt> |
|---|
| 269 |
<dd>CGI version. |
|---|
| 270 |
To run this server, copy server.cgi and calc.rb to suitable |
|---|
| 271 |
directory of your WWW server. |
|---|
| 272 |
</dd> |
|---|
| 273 |
<dt>client.rb</dt> |
|---|
| 274 |
<dd>It connects to server.rb or server.cgi, |
|---|
| 275 |
and hit methods served by calc.rb. |
|---|
| 276 |
To run the client; |
|---|
| 277 |
<pre class="path"> |
|---|
| 278 |
$ ./client.rb |
|---|
| 279 |
</pre> |
|---|
| 280 |
Is it stacked? Did you run the server.rb?<br/> |
|---|
| 281 |
Turn logger and wireDumpDev in its source on to see logs and wire |
|---|
| 282 |
dumps of SOAP transport. |
|---|
| 283 |
</dd> |
|---|
| 284 |
<dt>calc2.rb</dt> |
|---|
| 285 |
<dd>Calc server definition using class and instance methods. |
|---|
| 286 |
An instance of this class holds its value. Methods 'set' and 'get' |
|---|
| 287 |
is to set/get the value. |
|---|
| 288 |
It also responds to '+', '-', '*', and '/'. |
|---|
| 289 |
</dd> |
|---|
| 290 |
<dt>server2.rb</dt> |
|---|
| 291 |
<dd>It requires calc2.rb and creates an instance of CalcService2 |
|---|
| 292 |
that responds all SOAP requests. |
|---|
| 293 |
Since '+', '-' and so on of calc2.rb are not valid name as an |
|---|
| 294 |
element in XML instance, this sample register the method '+' as |
|---|
| 295 |
'add', '-' as 'sub', and so on. |
|---|
| 296 |
</dd> |
|---|
| 297 |
<dt>server2.cgi</dt> |
|---|
| 298 |
<dd>CGI version. |
|---|
| 299 |
To run this server, copy server2.cgi and calc2.rb to suitable |
|---|
| 300 |
directory of your WWW server. |
|---|
| 301 |
</dd> |
|---|
| 302 |
<dt>client2.rb</dt> |
|---|
| 303 |
<dd>It connects to server2.rb or server2.cgi. |
|---|
| 304 |
Set a value at first and call methods like 'puts objAtServer + 2'. |
|---|
| 305 |
</dd> |
|---|
| 306 |
</dl> |
|---|
| 307 |
</dd> |
|---|
| 308 |
|
|---|
| 309 |
<dt class="path">exchange/</dt> |
|---|
| 310 |
<dd>A sample to retrieve the currency rate from public SOAP service. |
|---|
| 311 |
<dl> |
|---|
| 312 |
<dt>iExchange.rb</dt> |
|---|
| 313 |
<dd>It includes common definitions for client and server of |
|---|
| 314 |
Exchange service. Including only a definition of namespace URI of |
|---|
| 315 |
this service.</dd> |
|---|
| 316 |
<dt>exchange.rb</dt> |
|---|
| 317 |
<dd>Definition of servant class ExchangeService which returns the |
|---|
| 318 |
currency rate after connecting to another site by SOAP to get the |
|---|
| 319 |
real rate. |
|---|
| 320 |
So that this class is the SOAP server for local client and |
|---|
| 321 |
is also a SOAP client for public server. |
|---|
| 322 |
An instance of this class is hosted by server.rb. |
|---|
| 323 |
The instance responds to only 'getRate' which receives two country |
|---|
| 324 |
code such as 'USA' and 'Japan'.</dd> |
|---|
| 325 |
<dt>server.rb</dt> |
|---|
| 326 |
<dd>It requires exchange.rb and creates an instance of |
|---|
| 327 |
ExchangeService that responds all SOAP requests. |
|---|
| 328 |
To run this server; |
|---|
| 329 |
<pre class="path"> |
|---|
| 330 |
$ ./server.rb |
|---|
| 331 |
</pre> |
|---|
| 332 |
</dd> |
|---|
| 333 |
<dt>server.cgi</dt> |
|---|
| 334 |
<dd>CGI version. To run this server, copy server.cgi and exchange.rb |
|---|
| 335 |
to suitable directory of your WWW server.</dd> |
|---|
| 336 |
<dt>client.rb</dt> |
|---|
| 337 |
<dd>It connects to server.rb. Turn logger and wireDumpDev in its |
|---|
| 338 |
source on to see logs and wire dumps of SOAP transport. |
|---|
| 339 |
To run the client; |
|---|
| 340 |
<pre class="path"> |
|---|
| 341 |
$ ./client.rb |
|---|
| 342 |
</pre> |
|---|
| 343 |
</dd> |
|---|
| 344 |
</dl> |
|---|
| 345 |
</dd> |
|---|
| 346 |
|
|---|
| 347 |
<dt class="path">authheader/</dt> |
|---|
| 348 |
<dd>It contains a sample to utilize SOAP Header handler. Send |
|---|
| 349 |
userid/passwd and receive sessionid via SOAP Header</dd> |
|---|
| 350 |
|
|---|
| 351 |
<dt class="path">raa2.4/</dt> |
|---|
| 352 |
<dd>sample/soap/raa2.4/sample.rb is a sample client to retrieve project |
|---|
| 353 |
information on RAA. It uses raaDriver.rb which is generated by |
|---|
| 354 |
wsdl2ruby.rb from WSDL at |
|---|
| 355 |
<a href="http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/">http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/</a>. |
|---|
| 356 |
You'll find wsdlDriver.rb in sample/wsdl/raa2.4/wsdlDriver.rb which |
|---|
| 357 |
loads the WSDL at runtime to connect.</dd> |
|---|
| 358 |
|
|---|
| 359 |
<dt class="path">scopesample/</dt> |
|---|
| 360 |
<dd>SOAP server sample which shows a different behavior of SOAP server scope settings; Request scope vs Application scope. |
|---|
| 361 |
sample/soap/scopesample/servant.rb is a servant which holds push-ed |
|---|
| 362 |
object that can be pop-ed afterward. |
|---|
| 363 |
See sample/soap/scopesample/server.rb how to define a servant as |
|---|
| 364 |
a Request scope servant or an Application scope servant. |
|---|
| 365 |
Application scope servant works as we expected because the servant |
|---|
| 366 |
object is living from beginning to the time server terminated. |
|---|
| 367 |
In contrast, request scope servant(s) does not work because a servant |
|---|
| 368 |
object is created for each request. |
|---|
| 369 |
</dd> |
|---|
| 370 |
|
|---|
| 371 |
<dt class="path">ssl/</dt> |
|---|
| 372 |
<dd>SSL SOAP server and client samples. |
|---|
| 373 |
<dl> |
|---|
| 374 |
<dt class="path">sslserver.rb</dt> |
|---|
| 375 |
<dd>SSL server sample which hosts "hello world" service. |
|---|
| 376 |
This server uses SSL server certificate in files/ directory |
|---|
| 377 |
(SSL client should check this certificate for SSL server |
|---|
| 378 |
authentication).</dd> |
|---|
| 379 |
<dt class="path">sslserver_noauth.rb</dt> |
|---|
| 380 |
<dd>This server generates SSL server certificate |
|---|
| 381 |
at runtime. No security.</dd> |
|---|
| 382 |
<dt class="path">sslserver_require_clientauth.rb</dt> |
|---|
| 383 |
<dd>This server users SSL server certificate in files/ directory |
|---|
| 384 |
and requires SSL client authentication (clients must |
|---|
| 385 |
have SSL client certificate and send it to the server).</dd> |
|---|
| 386 |
<dt class="path">sslclient.rb</dt> |
|---|
| 387 |
<dd>SSL client sample which calls "hello world" service via HTTPS. |
|---|
| 388 |
This client checks SSL server certificate sent from SSL server.</dd> |
|---|
| 389 |
<dt class="path">sslclient_require_noserverauth.rb</dt> |
|---|
| 390 |
<dd>This client does not check SSL server certificate. |
|---|
| 391 |
No security.</dd> |
|---|
| 392 |
<dt class="path">sslclient_with_clientauth.rb</dt> |
|---|
| 393 |
<dd>This client sends SSL client certificate in files/ directory |
|---|
| 394 |
and checks SSL server certificate.</dd> |
|---|
| 395 |
</dl> |
|---|
| 396 |
</dd> |
|---|
| 397 |
|
|---|
| 398 |
<dt class="path">swa/</dt> |
|---|
| 399 |
<dd>SOAP server and client sample of SwA (SOAP with Attachments).</dd> |
|---|
| 400 |
|
|---|
| 401 |
<dt class="path">digraph.rb</dt> |
|---|
| 402 |
<dd>A sample of SOAP marshalling/unmarshalling. |
|---|
| 403 |
It creates a digraph that contains multi-ref-ed nodes at first |
|---|
| 404 |
and marshals this object to get serialized XML instance. |
|---|
| 405 |
Then reads and unmarshals this XML instance to recover a object |
|---|
| 406 |
which has the same links among nodes in the digraph. |
|---|
| 407 |
</dd> |
|---|
| 408 |
|
|---|
| 409 |
<dt class="path">sampleStruct/</dt> |
|---|
| 410 |
<dd>A sample to transmit complex structured object which has recursive |
|---|
| 411 |
object reference. |
|---|
| 412 |
<dl> |
|---|
| 413 |
<dt>iSampleStruct.rb</dt> |
|---|
| 414 |
<dd>It includes common definitions for client and server of |
|---|
| 415 |
SampleStruct service. Definition of SampleStruct class and |
|---|
| 416 |
namespace URI of this service.</dd> |
|---|
| 417 |
<dt>sampleStruct.rb</dt> |
|---|
| 418 |
<dd>Definition of servant class SampleStructService. |
|---|
| 419 |
An instance of this class is hosted by server.rb. |
|---|
| 420 |
The instance responds to only 'hi' which receives a SampleStruct |
|---|
| 421 |
and wraps it in the new instance of SampleStruct to return .</dd> |
|---|
| 422 |
<dt>server.rb</dt> |
|---|
| 423 |
<dd>It requires sampleStruct.rb and creates an instance of |
|---|
| 424 |
SampleStructService that responds all SOAP requests. |
|---|
| 425 |
To run this server; |
|---|
| 426 |
<pre class="path"> |
|---|
| 427 |
$ ./server.rb |
|---|
| 428 |
</pre> |
|---|
| 429 |
</dd> |
|---|
| 430 |
<dt>server.cgi</dt> |
|---|
| 431 |
<dd>CGI version. To run this server, copy server.cgi and |
|---|
| 432 |
sampleStruct.rb to suitable directory of your WWW server.</dd> |
|---|
| 433 |
<dt>client.rb</dt> |
|---|
| 434 |
<dd>It connects to server.rb. Turn logger and wireDumpDev in its |
|---|
| 435 |
source on to see logs and wire dumps of SOAP transport. |
|---|
| 436 |
To run the client; |
|---|
| 437 |
<pre class="path"> |
|---|
| 438 |
$ ./client.rb |
|---|
| 439 |
</pre> |
|---|
| 440 |
</dd> |
|---|
| 441 |
</dl> |
|---|
| 442 |
</dd> |
|---|
| 443 |
|
|---|
| 444 |
<dt class="path">icd/</dt> |
|---|
| 445 |
<dd>A client for |
|---|
| 446 |
<a href="http://www.iwebmethod.net/">Insider's Computer Dictionary Web Service</a>. |
|---|
| 447 |
This service is implemented with ASP.NET so that it's also a sample of |
|---|
| 448 |
a client which connects to ASP.NET. |
|---|
| 449 |
CAUTION: this sample contains non-ascii chars in its source and dumped |
|---|
| 450 |
results. |
|---|
| 451 |
<dl> |
|---|
| 452 |
<dt>IICD.rb</dt> |
|---|
| 453 |
<dd>Class(type) definitions for this server.</dd> |
|---|
| 454 |
<dt>icd.rb</dt> |
|---|
| 455 |
<dd>Client implementation. To run the client; |
|---|
| 456 |
<pre class="path"> |
|---|
| 457 |
$ ./icd.rb |
|---|
| 458 |
</pre> |
|---|
| 459 |
</dd> |
|---|
| 460 |
</dl> |
|---|
| 461 |
</dd> |
|---|
| 462 |
</dl> |
|---|
| 463 |
</dd> |
|---|
| 464 |
|
|---|
| 465 |
<dt class="path">wsdl/</dt> |
|---|
| 466 |
<dd> |
|---|
| 467 |
<dl> |
|---|
| 468 |
<dt class="path">googleSearch/</dt> |
|---|
| 469 |
<dd>Sample client to search with <a href="http://www.google.com/apis/">Google Web API</a> using WSDL. You need to get a developer's key to use it. See wsdlDriver.rb.</dd> |
|---|
| 470 |
|
|---|
| 471 |
<dt class="path">amazon/</dt> |
|---|
| 472 |
<dd>Sample client to connect with <a href="http://associates.amazon.com/exec/panama/associates/ntg/browse/-/1067662/086-5207681-4585409">AmazonWebServices</a> using WSDL. See wsdlDriver.rb.</dd> |
|---|
| 473 |
|
|---|
| 474 |
<dt class="path">documentliteral/</dt> |
|---|
| 475 |
<dd>Sample client and server of document/literal service. See README.txt in this directory to run this sample.</dd> |
|---|
| 476 |
|
|---|
| 477 |
<dt class="path">noaa/</dt> |
|---|
| 478 |
<dd>Sample client of National Weather Service digital weather forecast data service at http://weather.gov/</dd> |
|---|
| 479 |
|
|---|
| 480 |
<dt class="path">raa2.4/</dt> |
|---|
| 481 |
<dd>sample/wsdl/raa2.4/wsdlDriver.rb is a sample client to retrieve |
|---|
| 482 |
project information on RAA. It loads WSDL file |
|---|
| 483 |
<a href="http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/">http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/</a> |
|---|
| 484 |
at <strong>runtime</strong>. |
|---|
| 485 |
You'll find a sample client at sample/soap/raa2.4/sample.rb |
|---|
| 486 |
which connects RAA using pre-generated service definitions |
|---|
| 487 |
(not loads WSDL at runtime).</dd> |
|---|
| 488 |
|
|---|
| 489 |
<dt class="path">googleAdwords/</dt> |
|---|
| 490 |
<dd>Sample client of Google AdWords service. |
|---|
| 491 |
CAUTION: I don't have an account of AdWords so the sample code is NOT |
|---|
| 492 |
tested. Please tell me (nahi@ruby-lang.org) if you will get good/bad |
|---|
| 493 |
result in communicating with AdWords Server.</dd> |
|---|
| 494 |
|
|---|
| 495 |
<dt class="path">amazonEC/</dt> |
|---|
| 496 |
<dd>Sample client of AWSECommerce service. |
|---|
| 497 |
CAUTION: I don't have an account of AWSECommerce so the sample code is |
|---|
| 498 |
NOT tested. Please tell me (nahi@ruby-lang.org) if you will get |
|---|
| 499 |
good/bad result in communicating with AWSECommerce Server.</dd> |
|---|
| 500 |
</dl> |
|---|
| 501 |
</dd> |
|---|
| 502 |
|
|---|
| 503 |
</dl> |
|---|
| 504 |
</dd> |
|---|
| 505 |
|
|---|
| 506 |
</dl> |
|---|
| 507 |
|
|---|
| 508 |
<h2 id="restrictions" name="restrictions"><span class="content">7. Restrictions</span></h2> |
|---|
| 509 |
|
|---|
| 510 |
<p> |
|---|
| 511 |
The following features of the |
|---|
| 512 |
<a href="http://www.w3.org/TR/SOAP/">SOAP 1.1 (W3C Note)</a> |
|---|
| 513 |
spec are <strong>NOT</strong> currently supported: |
|---|
| 514 |
</p> |
|---|
| 515 |
|
|---|
| 516 |
<ul> |
|---|
| 517 |
<li style="margin-top: 2ex;">SOAP Envelope |
|---|
| 518 |
<ul> |
|---|
| 519 |
<li>SOAP actor attribute</li> |
|---|
| 520 |
<li>SOAP Fault Codes</li> |
|---|
| 521 |
</ul></li> |
|---|
| 522 |
<li style="margin-top: 2ex;">Othres |
|---|
| 523 |
<ul> |
|---|
| 524 |
<li>Transport binding except HTTP server and client</li> |
|---|
| 525 |
</ul></li> |
|---|
| 526 |
</ul> |
|---|
| 527 |
|
|---|
| 528 |
<h2 id="resources" name="resources"><span class="content">8. Resources</span></h2> |
|---|
| 529 |
|
|---|
| 530 |
<dl> |
|---|
| 531 |
<dt class="path"><a href="http://dev.ctor.org/soap4r">soap4r project page</a></dt> |
|---|
| 532 |
<dd>You can get the latest information and the latest development version of soap4r here.</dd> |
|---|
| 533 |
|
|---|
| 534 |
<dt class="path"><a href="http://raa.ruby-lang.org/project/soap4r">[RAA:soap4r]</a></dt> |
|---|
| 535 |
<dd>RAA meta information</dd> |
|---|
| 536 |
|
|---|
| 537 |
<dt class="path"><a href="http://groups-beta.google.com/group/soap4r">soap4r Mailing List on Google Groups</a></dt> |
|---|
| 538 |
<dd>Feel free to join the list to ask any question and comment about soap4r. |
|---|
| 539 |
You can browse messages archive. Bear in mind that Google Groups is still |
|---|
| 540 |
in [beta] stage.</dd> |
|---|
| 541 |
|
|---|
| 542 |
<dt class="path">Subversion repository</dt> |
|---|
| 543 |
<dd>Soap4r's svn repository is here: http://dev.ctor.org/svn/soap4r/ . |
|---|
| 544 |
To checkout the latest soap4r module, try |
|---|
| 545 |
<pre> |
|---|
| 546 |
svn checkout http://dev.ctor.org/svn/soap4r/trunk soap4r |
|---|
| 547 |
</pre> |
|---|
| 548 |
CVS repository of soap4r which was located at cvs.ruby-lang.org is pending since 2004-05-27. </dd> |
|---|
| 549 |
</dl> |
|---|
| 550 |
|
|---|
| 551 |
<h2 id="history" name="history"><span class="content">9. History</span></h2> |
|---|
| 552 |
|
|---|
| 553 |
<dl> |
|---|
| 554 |
<dt>1.5.5 - Sep 15, 2005</dt> |
|---|
| 555 |
<dd> Here are changes in 1.5.5 from 1.5.4. |
|---|
| 556 |
<ul><li>SOAP |
|---|
| 557 |
<ul><li>allow to configure an envelope namespace of SOAP request. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/124" title="configuable envelope namespace (closed)">#124</a>) |
|---|
| 558 |
<pre class="wiki">TemporaryNamespace = 'http://www.w3.org/2003/05/soap-envelope' |
|---|
| 559 |
@client.options["soap.envelope.requestnamespace"] = TemporaryNamespace |
|---|
| 560 |
@client.options["soap.envelope.responsenamespace"] = TemporaryNamespace |
|---|
| 561 |
@client.do_proc(...) |
|---|
| 562 |
</pre> |
|---|
| 563 |
</li><li>let SOAP request XML indent space configuable. see "soap.envelope.no_indent" option. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/130" title="A server dislike indent spaces in XML instance (closed)">#130</a>) |
|---|
| 564 |
|
|---|
| 565 |
</li><li>let external CES configuable. ex. client["soap.mapping.external_ces"] = 'SJIS'. $KCODE is used by default. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/133" title="let $KCODE free (closed)">#133</a>) |
|---|
| 566 |
<pre class="wiki">external CES ::= CES used in Ruby object of client and server |
|---|
| 567 |
internal CES ::= CES used in SOAP/OM |
|---|
| 568 |
</pre> |
|---|
| 569 |
</li><li>add iso-8859-1 external CES support. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/106" title="iso-8859-1 encoded response (closed)">#106</a>) |
|---|
| 570 |
</li><li>fixed illegal 'qualified' handling of elements. it caused ASP.NET inteoperability problem. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/144" title="soap4r and ASP.NET problems about 'qualified' (closed)">#144</a>) |
|---|
| 571 |
</li><li>added 'soap.envelope.use_numeric_character_reference' (boolean) option to let query XML use numeric character reference in XML, not plain UTF-8 character. GoogleSearch server seems to not allow plain UTF-8 character since 2005-08-15 update. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/147" title="GoogleWebSearch does not work with UTF-8 query (closed)">#147</a>) |
|---|
| 572 |
</li><li>SOAP::Header::SimpleHeader (de)serialization throws an exception on SimpleHeader.on_(in|out)bound when header is a String. so we could not use a simple single element headerItem. fixed. thanks to emil. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/129" title="SOAP::Header::SimpleHeader deserialization throws on ... (closed)">#129</a>) |
|---|
| 573 |
|
|---|
| 574 |
</li><li>out parameter of rpc operation did not work. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/132" title="outparameter causes NameError (closed)">#132</a>) |
|---|
| 575 |
</li><li>follow HTTP redirect only if using http-access2. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/125" title="follow http/https redirection (closed)">#125</a>) (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/145" title="an error from streamHandler.rb:37 that claims an uninitialized constant ... (closed)">#145</a>) |
|---|
| 576 |
</li><li>add a workaround for importing an WSDL whose path begins with drive letter. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/115" title="RuntimeError: Cannot connect to ... (closed)">#115</a>) |
|---|
| 577 |
</li></ul></li><li>WSDL |
|---|
| 578 |
<ul><li>SOAP Data which is defined as a simpletype was not mapped correctly to Ruby obj when using wsdl2ruby.rb generated classdef file. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/123" title="soap4r mapping problem when using google adwords api (closed)">#123</a>) |
|---|
| 579 |
</li><li>rpc/literal support. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/118" title="soap encoding is used for rpc/literal services (closed)">#118</a>) |
|---|
| 580 |
|
|---|
| 581 |
</li><li>re-implemented local element qualify/unqualify control. handles elementFormDefault and form in WSDL. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/119" title="Cannot talk to doc/literal service which is has ... (closed)">#119</a>) |
|---|
| 582 |
</li><li>Array of an element which has simpleType causes a crash. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/128" title="Array of a element which has simpleType causes a crash (closed)">#128</a>) |
|---|
| 583 |
</li><li>prarmeterOrder may not contain return part so it can be shorter than parts size. Thanks to Hugh. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/139" title="prarmeterOrder may not contain return part (closed)">#139</a>) |
|---|
| 584 |
</li></ul></li><li>Samples |
|---|
| 585 |
<ul><li>added BasicAuth client sample. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/117" title="add BasicAuth sample not only in test dir but also in sample dir (closed)">#117</a>) |
|---|
| 586 |
</li><li>added Base64 client/server sample. |
|---|
| 587 |
</li><li>added Flickr SOAP interface client sample. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/122" title="Flickr SOAP API support (closed)">#122</a>) |
|---|
| 588 |
|
|---|
| 589 |
</li><li>added SalesForce client sample. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/135" title="how to set session id in SOAP header (sforce WSDL) (closed)">#135</a>) |
|---|
| 590 |
</li><li>updated Thawte CA certificate for GoogleAdWords sample. |
|---|
| 591 |
</li><li>updated a client script with the newer version made by Johan. thanks! |
|---|
| 592 |
</li><li>shortened long file names. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/120" title="long file name (closed)">#120</a>) |
|---|
| 593 |
</li><li>fixed typo in authheader sample. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/129" title="SOAP::Header::SimpleHeader deserialization throws on ... (closed)">#129</a>) |
|---|
| 594 |
</li><li>updated deprecated method usage. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/138" title="create_driver in sample should be replaced with create_rpc_driver (closed)">#138</a>) |
|---|
| 595 |
</li></ul></li></ul> |
|---|
| 596 |
</dd> |
|---|
| 597 |
|
|---|
| 598 |
<dt>1.5.4 - May 13, 2005</dt> |
|---|
| 599 |
<dd>This is version 1.5.4. |
|---|
| 600 |
Version 1.5.3 is the module which is included in ruby-1.8.2, |
|---|
| 601 |
and not released independently. |
|---|
| 602 |
Following changes consist from 2 parts; Changes from 1.5.3 to 1.5.4, |
|---|
| 603 |
and from 1.5.2 to 1.5.3. |
|---|
| 604 |
<br/><br/> |
|---|
| 605 |
Changes in 1.5.4 from 1.5.3 |
|---|
| 606 |
<br/><br/> |
|---|
| 607 |
<ul> |
|---|
| 608 |
<li>SOAP client and server |
|---|
| 609 |
<ul> |
|---|
| 610 |
<li>for both client side and server side |
|---|
| 611 |
<ul> |
|---|
| 612 |
<li>improved document/literal service support. style(rpc, document)/use(encoding, literal) combination are all supported. for the detail about combination, see test/soap/test_style.rb.</li> |
|---|
| 613 |
<li>let WSDLEncodedRegistry#soap2obj map SOAP/OM to Ruby according to WSDL as well as obj2soap.</li> |
|---|
| 614 |
<li>let SOAP::Mapping::Object handle XML attribute for doc/lit service. you can set/get XML attribute via accessor methods which as a name 'xmlattr_' prefixed (<foo name="bar"/> -> Foo#xmlattr_name).</li> |
|---|
| 615 |
</ul> |
|---|
| 616 |
</li> |
|---|
| 617 |
<li>client side |
|---|
| 618 |
<ul> |
|---|
| 619 |
<li>WSDLDriver capitalized name operation bug fixed. from 1.5.3-ruby1.8.2, operation which has capitalized name (such as KeywordSearchRequest in AWS) is defined as a method having uncapitalized name. (converted with GenSupport.safemethodname to handle operation name 'foo-bar'). it introduced serious incompatibility; in the past, it was defined as a capitalized. define capitalized method as well under that circumstance.</li> |
|---|
| 620 |
|
|---|
| 621 |
<li>added new factory interface 'WSDLDriverFactory#create_rpc_driver' to create RPC::Driver, not WSDLDriver (RPC::Driver and WSDLDriver are merged). 'WSDLDriverFactory#create_driver' still creates WSDLDriver for compatibility but it warns that the method is deprecated. please use create_rpc_driver instead of create_driver.</li> |
|---|
| 622 |
<li>allow to use an URI object as an endpoint_url even with net/http, not http-access2.</li> |
|---|
| 623 |
</ul> |
|---|
| 624 |
</li> |
|---|
| 625 |
<li>server side |
|---|
| 626 |
<ul> |
|---|
| 627 |
<li>added mod_ruby support to SOAP::CGIStub. rename a CGI script server.cgi to server.rb and let mod_ruby's RubyHandler handles the script. CGIStub detects if it's running under mod_ruby environment or not.</li> |
|---|
| 628 |
<li>added fcgi support to SOAP::CGIStub. see the sample at sample/soap/calc/server.fcgi. (almost same as server.cgi but has fcgi handler at the bottom.)</li> |
|---|
| 629 |
<li>allow to return a SOAPFault object to respond customized SOAP fault.</li> |
|---|
| 630 |
<li>added the interface 'generate_explicit_type' for server side (CGIStub, HTTPServer). call 'self.generate_explicit_type = true' if you want to return simplified XML even if it's rpc/encoded service.</li> |
|---|
| 631 |
</ul> |
|---|
| 632 |
</li> |
|---|
| 633 |
</ul> |
|---|
| 634 |
</li> |
|---|
| 635 |
|
|---|
| 636 |
<li>WSDL |
|---|
| 637 |
<ul> |
|---|
| 638 |
<li>WSDL definition |
|---|
| 639 |
<ul> |
|---|
| 640 |
<li>improved XML Schema support such as extension, restriction, simpleType, complexType + simpleContent, ref, length, import, include.</li> |
|---|
| 641 |
<li>reduced "unknown element/attribute" warnings (warn only 1 time for each QName).</li> |
|---|
| 642 |
<li>importing XSD file at schemaLocation with xsd:import.</li> |
|---|
| 643 |
</ul> |
|---|
| 644 |
</li> |
|---|
| 645 |
<li>code generation from WSDL |
|---|
| 646 |
<ul> |
|---|
| 647 |
<li>generator crashed when there's '-' in defined element/attribute name.</li> |
|---|
| 648 |
<li>added ApacheMap WSDL definition.</li> |
|---|
| 649 |
</ul> |
|---|
| 650 |
</li> |
|---|
| 651 |
</ul> |
|---|
| 652 |
</li> |
|---|
| 653 |
|
|---|
| 654 |
<li>Samples |
|---|
| 655 |
<ul> |
|---|
| 656 |
<li>added XML <-> Ruby mapping utility. XSD::Mapping#xml2obj maps an XML to a tree of SOAP::Mapping::Object. XSD::Mapping#obj2xml is for reverse direction conversion. see a sample in sample/wsdl/noaa/client.rb</li> |
|---|
| 657 |
<li>added a sample for weather.gov's NDFD services.</li> |
|---|
| 658 |
<li>add a sample of googleAdWords. CAUTION: I don't have an account of AdWords so the sample code is NOT tested. Please tell me (nahi@ruby-lang.org) if you will get good/bad result in communicating with AdWords Server.</li> |
|---|
| 659 |
<li>add a sample of AWSECommerce. CAUTION: I don't have an account of AWSECommerce so the sample code is NOT tested. Please tell me (nahi@ruby-lang.org) if you will get good/bad result in communicating with AWSECommerce Server.</li> |
|---|
| 660 |
</ul> |
|---|
| 661 |
</li> |
|---|
| 662 |
|
|---|
| 663 |
<li>Redists |
|---|
| 664 |
<ul> |
|---|
| 665 |
<li>include xmlscan as a redistributed module. xmlscan now is a first class XML processor. still soap4r should run with REXML and XMLParser.</li> |
|---|
| 666 |
</ul> |
|---|
| 667 |
</li> |
|---|
| 668 |
</ul> |
|---|
| 669 |
<br/> |
|---|
| 670 |
Changes in 1.5.3 from 1.5.2 |
|---|
| 671 |
<br/><br/> |
|---|
| 672 |
<ul> |
|---|
| 673 |
<li>SOAP client and server |
|---|
| 674 |
<ul> |
|---|
| 675 |
<li>for both client side and server side |
|---|
| 676 |
<ul> |
|---|
| 677 |
<li>added a header handler class for simple SOAPHeader handling. see samples in sample/soap/authheader/*.</li> |
|---|
| 678 |
<li>SSL support (both client side and server side). check sample/soap/ssl/*</li> |
|---|
| 679 |
<li>gzipped content encoding support. see sample/soap/helloworld/hw_{c,s}_gzip.rb.</li> |
|---|
| 680 |
</ul> |
|---|
| 681 |
</li> |
|---|
| 682 |
<li>client side |
|---|
| 683 |
<ul> |
|---|
| 684 |
<li>HTTP-Cookies support under soap4r + http-access2. not supported under soap4r + net/http.</li> |
|---|
| 685 |
<li>added a method (SOAP::RPC::Driver#test_loopback_response) for loopback test with the specified response.</li> |
|---|
| 686 |
<li>added SOAP::RPC::Driver#loadproperty interface to load property file.</li> |
|---|
| 687 |
<li>let SOAP::RPC::Driver#add_method returns Method object. you can invoke a service like; drv.add_method("hello").call("world")</li> |
|---|
| 688 |
<li>added http options to get/set timeout seconds. |
|---|
| 689 |
<ul> |
|---|
| 690 |
<li>for http-access2: |
|---|
| 691 |
<ul> |
|---|
| 692 |
<li>driver.options["protocol.http.connect_timeout"]</li> |
|---|
| 693 |
<li>driver.options["protocol.http.send_timeout"]</li> |
|---|
| 694 |
<li>driver.options["protocol.http.receive_timeout"]</li> |
|---|
| 695 |
</ul> |
|---|
| 696 |
</li> |
|---|
| 697 |
<li>for net/http: |
|---|
| 698 |
<ul> |
|---|
| 699 |
<li>driver.options["protocol.http.connect_timeout"]</li> |
|---|
| 700 |
<li>driver.options["protocol.http.receive_timeout"]</li> |
|---|
| 701 |
</ul> |
|---|
| 702 |
</li> |
|---|
| 703 |
</ul> |
|---|
| 704 |
</li> |
|---|
| 705 |
<li>raise NotImplementedError when net/http + basic_auth.</li> |
|---|
| 706 |
</ul> |
|---|
| 707 |
</li> |
|---|
| 708 |
<li>server side |
|---|
| 709 |
<ul> |
|---|
| 710 |
<li>introduced the new server class SOAP::RPC::HTTPServer which takes WEBrick's HTTPServer compatible config parameter.</li> |
|---|
| 711 |
<li>added a debug log of SOAP request/response.</li> |
|---|
| 712 |
</ul> |
|---|
| 713 |
</li> |
|---|
| 714 |
</ul> |
|---|
| 715 |
</li> |
|---|
| 716 |
|
|---|
| 717 |
<li>SOAP core part |
|---|
| 718 |
<ul> |
|---|
| 719 |
<li>added XMLSchema derived type support; byte, nonPositiveInteger, negativeInteger, nonNegativeInteger, positiveInteger, unsignedLong, unsignedInt, unsignedShort, unsignedByte.</li> |
|---|
| 720 |
<li>'eval' cleanup. I hope it allows soap4r to work under mod_ruby environment.</li> |
|---|
| 721 |
<li>SOAPProperty raise RuntimeError under ruby-1.9 when accessing locked property. still raises TypeError under ruby-1.8 or earlier. the change is from ruby's behaviour change about an exception when accessing a frozen object.</li> |
|---|
| 722 |
<li>make SOAPHeader a child of SOAPStruct, not SOAPArray.</li> |
|---|
| 723 |
<li>SOAPProperty does not eval whole string. \\, \t, \r, \n, \f escaping chars are supported like Java's Properties.</li> |
|---|
| 724 |
<li>URI object was not mapped correctly so that URI object was not interoperable under some situation. fixed.</li> |
|---|
| 725 |
<li>SOAP::Mapping::Object: handle multiple value as an array. |
|---|
| 726 |
<pre> |
|---|
| 727 |
<foo> |
|---|
| 728 |
<bar>1</bar> |
|---|
| 729 |
<bar>2</bar> |
|---|
| 730 |
<bar>3</bar> |
|---|
| 731 |
<baz>4</baz> |
|---|
| 732 |
</foo> |
|---|
| 733 |
-> |
|---|
| 734 |
foo.bar => [1, 2, 3] |
|---|
| 735 |
foo.baz => 4 |
|---|
| 736 |
</pre> |
|---|
| 737 |
</li> |
|---|
| 738 |
<li>raise an exception while dumping singleton class. [ruby-dev:22588] |
|---|
| 739 |
<pre> |
|---|
| 740 |
e.g. c = class << Object.new |
|---|
| 741 |
class C; self; end |
|---|
| 742 |
end |
|---|
| 743 |
SOAPMarshal.dump(c) |
|---|
| 744 |
</pre> |
|---|
| 745 |
</li> |
|---|
| 746 |
</ul> |
|---|
| 747 |
</li> |
|---|
| 748 |
|
|---|
| 749 |
<li>WSDL |
|---|
| 750 |
<ul> |
|---|
| 751 |
<li>WSDL definition |
|---|
| 752 |
<ul> |
|---|
| 753 |
<li>added <xsd:simpleContent> support.</li> |
|---|
| 754 |
<li>initial (means "far from complete") simpleType support.</li> |
|---|
| 755 |
<li>support parts attribute of soap:body element.</li> |
|---|
| 756 |
<li>xmlSchema's 'any' element support; for parsing, just treat the element as an element which has a name 'any'.</li> |
|---|
| 757 |
<li>add mustUnderstand attribute support.</li> |
|---|
| 758 |
<li>a special well-known type: ApacheMap support.</li> |
|---|
| 759 |
</ul> |
|---|
| 760 |
</li> |
|---|
| 761 |
|
|---|
| 762 |
<li>code generation from WSDL |
|---|
| 763 |
<ul> |
|---|
| 764 |
<li>added simple code generation utils (lib/xsd/codegen)</li> |
|---|
| 765 |
<li>dump attribute definition in XMLSchema as 'attr_*' attribute. [experimental]</li> |
|---|
| 766 |
<li>wsdl2ruby.rb: add document/literal service support. see sample/wsdl/documentliteral/*</li> |
|---|
| 767 |
<li>untyped element should be treated as xsd:anyType.</li> |
|---|
| 768 |
<li>added a tool xsd2ruby.rb for generating classdef from xsd file.</li> |
|---|
| 769 |
</ul> |
|---|
| 770 |
</li> |
|---|
| 771 |
</ul> |
|---|
| 772 |
</li> |
|---|
| 773 |
|
|---|
| 774 |
<li>Samples |
|---|
| 775 |
<ul> |
|---|
| 776 |
<li>added RAA/2.4 sample client</li> |
|---|
| 777 |
<li>added sample for Application/Request scope use. Session scope (with Cookies) feature is not yet exists.</li> |
|---|
| 778 |
</ul> |
|---|
| 779 |
</li> |
|---|
| 780 |
</ul> |
|---|
| 781 |
</dd> |
|---|
| 782 |
|
|---|
| 783 |
<dt>1.5.2 - December 25, 2003</dt> |
|---|
| 784 |
<dd> |
|---|
| 785 |
<ul> |
|---|
| 786 |
<li>License; |
|---|
| 787 |
<ul> |
|---|
| 788 |
<li>Changed license from GPL2 to Ruby's.</li> |
|---|
| 789 |
</ul></li> |
|---|
| 790 |
|
|---|
| 791 |
<li>Features; |
|---|
| 792 |
<ul> |
|---|
| 793 |
<li>Add SOAP Messages with Attachments (SwA) support. |
|---|
| 794 |
Patched by Jamie Herre. |
|---|
| 795 |
"SOAP Messages with Attachments" is the W3C Note which defines a |
|---|
| 796 |
binding for a SOAP 1.1 message to be carried within a MIME |
|---|
| 797 |
multipart/related message. <a href="http://www.w3.org/TR/SOAP-attachments">http://www.w3.org/TR/SOAP-attachments</a> |
|---|
| 798 |
This feature is still experimental. Interop testing is going on.</li> |
|---|
| 799 |
|
|---|
| 800 |
<li>HTTPS support even when you use net/http (not http-access2). |
|---|
| 801 |
Patched by Oliver M. Bolzer.</li> |
|---|
| 802 |
|
|---|
| 803 |
<li>Property file support. SOAP and WSDL client reads "soap/property" |
|---|
| 804 |
file located at somewhere in $: (ruby libray locations). For |
|---|
| 805 |
example, save these lines to |
|---|
| 806 |
"$rubylibdir/site_ruby/1.8/soap/property". |
|---|
| 807 |
<pre> |
|---|
| 808 |
client.protocol.http.proxy = http://myproxy:8080 |
|---|
| 809 |
client.protocol.http.no_proxy = 192.168.71.71,192.168.71.72 |
|---|
| 810 |
</pre> |
|---|
| 811 |
Then all HTTP connections should use these proxy and no_proxy |
|---|
| 812 |
definition.</li> |
|---|
| 813 |
|
|---|
| 814 |
<li>Do not trust "HTTP_PROXY" environment variable by default to |
|---|
| 815 |
avoid security problem. cf. |
|---|
| 816 |
<ul> |
|---|
| 817 |
<li><a href="http://ftp.ics.uci.edu/pub/websoft/libwww-perl/archive/2001h1/0072.html">http://ftp.ics.uci.edu/pub/websoft/libwww-perl/archive/2001h1/0072.html</a></li> |
|---|
| 818 |
<li><a href="http://ftp.ics.uci.edu/pub/websoft/libwww-perl/archive/2001h1/0241.html">http://ftp.ics.uci.edu/pub/websoft/libwww-perl/archive/2001h1/0241.html</a></li> |
|---|
| 819 |
<li><a href="http://curl.haxx.se/mail/archive-2001-12/0034.html">http://curl.haxx.se/mail/archive-2001-12/0034.html</a></li> |
|---|
| 820 |
</ul> |
|---|
| 821 |
To use HTTP_PROXY and NO_PROXY environment variable, you must set |
|---|
| 822 |
SOAP_USE_PROXY environment variable 'on', too. |
|---|
| 823 |
<pre> |
|---|
| 824 |
bash$ soap_use_proxy=on http_proxy=http://myproxy:8080 ruby ... |
|---|
| 825 |
csh$ env soap_use_proxy=on http_proxy=http://myproxy:8080 ruby ... |
|---|
| 826 |
</pre></li> |
|---|
| 827 |
|
|---|
| 828 |
<li>Add SOAP::RPC::Driver#mandatorycharset= and |
|---|
| 829 |
SOAP::WSDLDriver#mandatorycharset= interface to force using |
|---|
| 830 |
charset when parsing response from buggy server such as AWS.</li> |
|---|
| 831 |
|
|---|
| 832 |
<li>Support a halfway-typed multi-ref array that Axis dumps.</li> |
|---|
| 833 |
|
|---|
| 834 |
<li>Added a interface XSD::Charset.encoding= to control internal |
|---|
| 835 |
encoding scheme. Internal encoding scheme was fixed to 'utf-8' |
|---|
| 836 |
when iconv or uconv was installed. You can set 'euc-jp', etc. |
|---|
| 837 |
to avoid encoding scheme conversion if you know what encoding |
|---|
| 838 |
scheme the server uses.</li> |
|---|
| 839 |
</ul></li> |
|---|
| 840 |
|
|---|
| 841 |
<li>Bug fixes; |
|---|
| 842 |
<ul> |
|---|
| 843 |
<li>SOAP::Marshal.unmarshal: raise an exception if parse fails. |
|---|
| 844 |
(returned nil)</li> |
|---|
| 845 |
|
|---|
| 846 |
<li>SOAP::WSDLDriver: decode unknown element according to self-defined |
|---|
| 847 |
type even if WSDL was given.</li> |
|---|
| 848 |
|
|---|
| 849 |
<li> SOAP::Mapping::Factory#create_empty_object: fix Class#allocate |
|---|
| 850 |
emulation code for ruby/1.6. no effective change under ruby/1.8.</li> |
|---|
| 851 |
|
|---|
| 852 |
<li>SOAP::RPC::SOAPMethodResponse: element name of response message |
|---|
| 853 |
could have the name other than 'return'.</li> |
|---|
| 854 |
|
|---|
| 855 |
<li>SOAP::RPC::StandaloneServer: add methods 'shutdown' and 'status' |
|---|
| 856 |
as delegates to WEBrick.</li> |
|---|
| 857 |
|
|---|
| 858 |
<li>WSDL::SOAP::ClassDefCreator: WSDL/1.1 allows plural fault |
|---|
| 859 |
definition in a operation.</li> |
|---|
| 860 |
|
|---|
| 861 |
<li>XSD::Charset.init: use cp932 under emx. |
|---|
| 862 |
Patched by Siena. / SHINAGAWA, Norihide.</li> |
|---|
| 863 |
</ul></li> |
|---|
| 864 |
</ul></dd> |
|---|
| 865 |
|
|---|
| 866 |
<dt>1.5.1 - November 2, 2003</dt> |
|---|
| 867 |
<dd> |
|---|
| 868 |
<ul> |
|---|
| 869 |
<li>Features; |
|---|
| 870 |
<ul> |
|---|
| 871 |
<li>Sample updates; Update Amazon Web Service WSDL (v2 -> v3), and update RAA WSDL(0.0.1 -> 0.0.2). |
|---|
| 872 |
<li>Supports ivars of basetype and extending modules marshalling with XML attribute. |
|---|
| 873 |
Using XML attribute to support ruby object dependent information, marshalled object keeps compatibility with SOAP spec. |
|---|
| 874 |
It shows the power of XML, extensibility.<br/> |
|---|
| 875 |
Now I think SOAP marshaller supports all kind of object graph which is supported by Ruby's original marshaller.</li> |
|---|
| 876 |
<li>Better XML pretty printing. |
|---|
| 877 |
<pre> |
|---|
| 878 |
puts SOAPMarshal.dump(Person.new("NaHi", 33)) |
|---|
| 879 |
|
|---|
| 880 |
=> |
|---|
| 881 |
|
|---|
| 882 |
<?xml version="1.0" encoding="utf-8" ?> |
|---|
| 883 |
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
|---|
| 884 |
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" |
|---|
| 885 |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
|---|
| 886 |
<env:Body> |
|---|
| 887 |
<Person xmlns:n1="http://www.ruby-lang.org/xmlns/ruby/type/custom" |
|---|
| 888 |
xsi:type="n1:Person" |
|---|
| 889 |
env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> |
|---|
| 890 |
<age xsi:type="xsd:int">33</age> |
|---|
| 891 |
<name xsi:type="xsd:string">NaHi</name> |
|---|
| 892 |
</Person> |
|---|
| 893 |
</env:Body> |
|---|
| 894 |
</env:Envelope> |
|---|
| 895 |
</pre></li> |
|---|
| 896 |
</ul></li> |
|---|
| 897 |
|
|---|
| 898 |
<li>Installation; |
|---|
| 899 |
<ul> |
|---|
| 900 |
<li>The previous version soap4r/1.5.0 required http-access2 to be installed to build CGI server, but no longer needed fot this purpose now. |
|---|
| 901 |
You can use almost all features of soap4r without http-access2, |
|---|
| 902 |
but for actual usage, consider installing http-access2 for speed and |
|---|
| 903 |
thread-safe SOAP client.</li> |
|---|
| 904 |
<li>Under ruby/1.8, installer installs lib files to rubylibdir(e.g. /usr/local/lib/ruby/1.8) instead of sitelibdir(e.g. /usr/local/lib/ruby/site_ruby/1.8)</li> |
|---|
| 905 |
</ul></li> |
|---|
| 906 |
|
|---|
| 907 |
<li>Bug fixes; |
|---|
| 908 |
<ul> |
|---|
| 909 |
<li>Do not introduce XSD constants to toplevel.</li> |
|---|
| 910 |
<li>'NO_PROXY'/'no_proxy' env var was not supported under net/http. Fixed.</li> |
|---|
| 911 |
<li>Remove some ruby/1.8 dependent codes. Should work fine under 1.6, too.</li> |
|---|
| 912 |
<li>XSD::XSDString did not check its value space under $KCODE = 'NONE' env for example where iconv module is not installed.</li> |
|---|
| 913 |
<li>XSD::XSDFloat, XSD::XSDDouble: add +/- sign explicitly when stringified and embedded into XML instance. Ruby's sprintf may format -0.0 as "0.0" (no minus sign) depending on underlying C sprintf implementation.</li> |
|---|
| 914 |
</ul></li> |
|---|
| 915 |
</ul></dd> |
|---|
| 916 |
|
|---|
| 917 |
<dt>1.5.0 - September 13, 2003</dt> |
|---|
| 918 |
<dd>Thousands of lines are changed in this release |
|---|
| 919 |
(*.rb in current SOAP4R distribution has 30kloc or over). |
|---|
| 920 |
But the biggest change is coding convention, camelCase to non_camel_case. |
|---|
| 921 |
Though I tried to keep compatibility between 1.5.0 and 1.4.8, but there's no |
|---|
| 922 |
way to keep it at a few point. If you'll find your code which was developed |
|---|
| 923 |
for 1.4.8 does not run under 1.5.0, feel free to ask |
|---|
| 924 |
<a href="mailto:nakahiro@sarion.co.jp">me</a> to solve the problem. |
|---|
| 925 |
<ul> |
|---|
| 926 |
<li>Dependency libraries; |
|---|
| 927 |
<ul> |
|---|
| 928 |
<li>Add net/http support. Users can try sample SOAP clients without installing http-access2. For actual usage, consider installing http-access2 for speed and thread-safe SOAP client. CAUTION: Building SOAP CGI server needs http-access2 to be installed.</li> |
|---|
| 929 |
<li>Soap4r standalone server requires webrick module to be installed instead of GServer.rb and httpserver.rb.</li> |
|---|
| 930 |
<li>Supports iconv. To use utf-8, you need to install iconv(included in ruby/1.8) or uconv.</li> |
|---|
| 931 |
<li>Suspend NQXML XML parser support.</li> |
|---|
| 932 |
<li>Remove REXML processor version check. No longer needed.</li> |
|---|
| 933 |
<li>Rewrite tests with test/unit.</li> |
|---|
| 934 |
</ul></li> |
|---|
| 935 |
|
|---|
| 936 |
<li>Features; |
|---|
| 937 |
<ul> |
|---|
| 938 |
<li>Efforts to support messaging with document/literal and ASP.NET interoperability.</li> |
|---|
| 939 |
<li>Add document/literal messaging interface to wsdlDriver.rb. See a very brief example in sample/soapbox/wsdlDriver.rb though I still didn't try to login to Jabber server.. Jabber folks?</li> |
|---|
| 940 |
<li>XML pretty printing.</li> |
|---|
| 941 |
<li>Better Ruby object mapping. Rewrote RubytypeFactory to support more Ruby objects. Tests in AMarshal(http://cvs.m17n.org/~akr/amarshal/) much helped it. Thanks very much to Tanaka Akira-san.</li> |
|---|
| 942 |
<li>SOAPMarshal accepts IO as an output device like Marshal#dump.</li> |
|---|
| 943 |
<li>SOAPElement: constructor signature change. Added extraattrs attribute.</li> |
|---|
| 944 |
<li>XSDDateTimeImpl: to_time did not set usec.</li> |
|---|
| 945 |
<li>StreamHandler: add reset method to shutdown a connection to a site.</li> |
|---|
| 946 |
</ul></li> |
|---|
| 947 |
|
|---|
| 948 |
<li>Others; |
|---|
| 949 |
<ul> |
|---|
| 950 |
<li>Simplify installer and remove uninstaller. Saving inventory file in src dir could be the problem.</li> |
|---|
| 951 |
<li>Class/Module architecture relocation.</li> |
|---|
| 952 |
<li>Changing coding convention to fit with Ruby's. Added lib/soap/compat.rb which defines compatibility definitions for 1.4.8. lib/soap/compat.rb warns when the library is loaded.</li> |
|---|
| 953 |
<li>Many warnings raised under 1.8, caused by illegal references like XSD::XSDInt in typeMap.rb. Soap4r defined toplevel::XSDInt. Define XSD* classes in XSD module and introduce it to toplevel.</li> |
|---|
| 954 |
</ul></li> |
|---|
| 955 |
</ul> |
|---|