| | 58 | <ul><li>SOAP/Ruby mapping |
|---|
| | 59 | <ul><li>try to call klass.soap_marshallable before mapping an XML element to the klass while unmarshalling. to avoid auto-mapping from element name, define klass.soap_marshallable method let it return false. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/223" title="avoid the AutoMapping (closed)">#223</a>) |
|---|
| | 60 | </li><li>[BUG] Array or Struct was not properly marshalled when literal service + generated stub combination. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/360" title="Array or Struct is not properly marshalled through stub definition for ... (closed)">#360</a>) |
|---|
| | 61 | </li><li>[BUG] derived class was marshalled without xsi:type for literal service. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/361" title="derived class is marshalled without xsi:type for literal service (closed)">#361</a>) |
|---|
| | 62 | </li><li>[BUG] passing nil as a basetype through generated mapping registry was broken in 1.5.6. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/369" title="nil passed as attribute to axis service gets sent as an empty string ... (closed)">#369</a>) |
|---|
| | 63 | </li><li>[BUG] an rpc/encoded parameter could be wrongly typed when the parameter is typed as a derived type from a base type of XML Schema datatypes. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/371" title="an rpc/encoded parameter wrongly typed (closed)">#371</a>) |
|---|
| | 64 | |
|---|
| | 65 | </li><li>[BUG] under the earlier versions, we could use [] instead of CountryTargets[]. from 1.5.6-GA it doesn't work. let LiteralRegistry decide how the class should be mapped to according to the defined class in the parent complexType. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/373" title="generic Array cannot be used instead of a custom array (closed)">#373</a>) |
|---|
| | 66 | </li></ul></li></ul><ul><li>RPC |
|---|
| | 67 | <ul><li>allow xsi:nil="true" element as an RPC request though I don't think it's SOAP spec compliant. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/374" title="SOAP::Lite incompatibility (closed)">#374</a>) |
|---|
| | 68 | </li></ul></li></ul><ul><li>Payload |
|---|
| | 69 | <ul><li>added an API for filtering streamhandler to capture/generate HTTP header. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/276" title="streamHandler filter to capture/create HTTP header (closed)">#276</a>) |
|---|
| | 70 | </li><li>added 'protocol.http.auth' option to set authentication information for both BasicAuth and DigestAuth. with the latest http-access2, now soap4r client can connect to DigestAuth server. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/345" title="Client Digest Authentication Implemented (closed)">#345</a>) |
|---|
| | 71 | |
|---|
| | 72 | </li></ul></li></ul><ul><li>WSDL |
|---|
| | 73 | <ul><li>[BUG] error when simpleType element usage as "part" definition directly. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/367" title="error when simpleType element usage as "part" definition directly (closed)">#367</a>) |
|---|
| | 74 | </li></ul></li></ul><ul><li>misc |
|---|
| | 75 | <ul><li>let xsd2ruby.rb generate a mapping registry and a mapper from XML Schema definition. the mapper has obj2xml and xml2obj which uses the generated mapping registry. you can use this instead of XSD::Mapping.obj2xml and XSD::Mapping.xml2obj which does not know anything about mapping. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/362" title="classname parameter for bin/xsd2ruby.rb (closed)">#362</a>, <a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/363" title="mapping xml<->obj based on XML Schema (closed)">#363</a>) |
|---|
| | 76 | </li><li>importer should not import <a class="ext-link" href="http://schemas.xmlsoap.org/soap/encoding/"><span class="icon">http://schemas.xmlsoap.org/soap/encoding/</span></a>. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/366" title="importer should not import http://schemas.xmlsoap.org/soap/encoding/ (closed)">#366</a>) |
|---|
| | 77 | </li><li>[BUG] wsdl2ruby.rb did not generate a classdef entry for empty element definition such as <element name="foo"/>. let wsdl2ruby.rb generate 'class Foo < String'. (<a class="closed ticket" href="http://dev.ctor.org/soap4r/ticket/370" title="empty element definition causes 'cannot find mapped class' warning (closed)">#370</a>) |
|---|
| | 78 | </li></ul></li></ul> |
|---|
| | 79 | |
|---|
| | 80 | <p> |
|---|
| | 81 | Thanks to all of soap4r-ml members and soap4r users for their support. |
|---|
| | 82 | And special thanks to following contributors; |
|---|
| | 83 | </p> |
|---|
| | 84 | <pre> |
|---|
| | 85 | 'Aaron Pfeifer' for contributing a patch for safemethodname. |
|---|
| | 86 | 'Andi Wundsam' for contributing a patch for net/http + no_proxy. |
|---|
| | 87 | 'anonymous contributor from Wall St.' for contributing a MSSOAP + Excel sample. |
|---|
| | 88 | 'Emil Marceta' for contributing a patch for one-way service support. |
|---|
| | 89 | 'Ernie' for contributing a helloworld WSDL sample and WSDL service feature of HTTPServer. |
|---|
| | 90 | 'Felipe Contreras' for contributing an union + memberType sample and patches for missing 'require'. |
|---|
| | 91 | 'Greg Lappen' for contributing an eBaySvc sample. |
|---|
| | 92 | 'Ger Apeldoorn' for contributing a sample of complex type + MIME attachment. |
|---|
| | 93 | 'Jamie Herre' for contributing a SwA implementation. |
|---|
| | 94 | 'John Anderson' for contributing a patch for handling gzipped HTTP content. |
|---|
| | 95 | 'Junichi Uekawa' for contributing a HTTP redirection patch for net/http. |
|---|
| | 96 | 'Kent Sibilev' for contributing a patch for correct extraattr handling of SOAPHeaderItem. |
|---|
| | 97 | 'Leoš Bitto' for contributing a patch for XML pretty print. |
|---|
| | 98 | 'Michael Neumann' for contributing an original implementation of standaloneServer. |
|---|
| | 99 | 'Oliver M. Bolzer' for contributing a patch for net/http + SSL. |
|---|
| | 100 | 'Owen Fraser-Green' for contributing a patch for MIME CRLF handling. |
|---|
| | 101 | 'Patrick Chanezon' for contributing a patch for wsdl2ruby classdef name option. |
|---|
| | 102 | 'Peter Gardfjäll' for contributing a patch for wsdl:fault handling. |
|---|
| | 103 | 'Sandi Metz' for contributing a patch for SwA in document/literal service. |
|---|
| | 104 | 'SHINAGAWA, Norihide' for contributing a patch for emx platform. |
|---|
| | 105 | 'Tadayoshi Funaba' for contributing a patch for date/time XMLSchema datatypes. |
|---|
| | 106 | 'UENO Katsuhiro' for xmlscan implementation. |
|---|
| | 107 | 'Walter Korman' for contributing soap4r.gemspec and a workaround patch for gem's require problem. |
|---|
| | 108 | 'wrex' for contributing a patch for soap4r to work with SalesForce service. |
|---|
| | 109 | </pre> |
|---|
| | 110 | |
|---|
| | 111 | <h2 id="install" name="install"><span class="content">2. Install</span></h2> |
|---|
| | 112 | |
|---|
| | 113 | <p> |
|---|
| | 114 | At first, see <a href="#dependencies">Dependencies</a> section. |
|---|
| | 115 | You may need to install some extra packages. |
|---|
| | 116 | Next, get the archived file of SOAP4R and extract it, then simply try; |
|---|
| | 117 | </p> |
|---|
| | 118 | <pre class="path"> |
|---|
| | 119 | $ ruby install.rb |
|---|
| | 120 | </pre> |
|---|
| | 121 | |
|---|
| | 122 | <p> |
|---|
| | 123 | Necessary files will be installed to suitable directory. |
|---|
| | 124 | </p> |
|---|
| | 125 | |
|---|
| | 126 | <p> |
|---|
| | 127 | Files and directories in lib directory are SOAP4R library program itself. |
|---|
| | 128 | </p> |
|---|
| | 129 | |
|---|
| | 130 | <dl> |
|---|
| | 131 | <dt class="path">lib/</dt> |
|---|
| | 132 | <dd>Libraries.</dd> |
|---|
| | 133 | |
|---|
| | 134 | <dt class="path">sample/</dt> |
|---|
| | 135 | <dd>SOAP4R samples. |
|---|
| | 136 | See <a href="#samples">Samples</a> section.</dd> |
|---|
| | 137 | |
|---|
| | 138 | <dt class="path">test/</dt> |
|---|
| | 139 | <dd>Tests. It also contains useful sample scripts for servers and clients. |
|---|
| | 140 | <br/> |
|---|
| | 141 | test/interopR2/ directory includes Clients/Server for |
|---|
| | 142 | <a href="http://www.xmethods.net/ilab/">`SOAPBuilders Interoperability Lab.'</a> |
|---|
| | 143 | Followings are advanced examples to use complex type transmit, |
|---|
| | 144 | sending base64 encoded string, multi-dimensional array, and so on. |
|---|
| | 145 | <ul> |
|---|
| | 146 | <li>test/interopR2/server.rb is a RPC Server side implementation.</li> |
|---|
| | 147 | <li>test/interopR2/client.rb is a RPC Client side implementation.</li> |
|---|
| | 148 | <li>test/interopR2/base.rb includes common definitions for client/server.</li> |
|---|
| | 149 | </ul> |
|---|
| | 150 | </dd> |
|---|
| | 151 | </dl> |
|---|
| | 152 | |
|---|
| | 153 | <h2 id="uninstall" name="uninstall"><span class="content">3. Uninstall</span></h2> |
|---|
| | 154 | |
|---|
| | 155 | <p> |
|---|
| | 156 | Simply delete installed files. |
|---|
| | 157 | </p> |
|---|
| | 158 | |
|---|
| | 159 | <h2 id="whats" name="whats"><span class="content">4. What is SOAP4R?</span></h2> |
|---|
| | 160 | |
|---|
| | 161 | <p> |
|---|
| | 162 | 'SOAP4R' is an implementation of |
|---|
| | 163 | <a href="http://www.w3.org/TR/SOAP/">SOAP 1.1 (W3C Note)</a>. |
|---|
| | 164 | </p> |
|---|
| | 165 | |
|---|
| | 166 | <p> |
|---|
| | 167 | Comments, information such as interoperability between SOAP4R and another implementation are welcomed. |
|---|
| | 168 | Feel free sending mail to |
|---|
| | 169 | <a href="mailto:nahi@ruby-lang.org" class="path">nahi@ruby-lang.org</a>. |
|---|
| | 170 | </p> |
|---|
| | 171 | |
|---|
| | 172 | <h2 id="dependencies" name="dependencies"><span class="content">5. Dependencies</span></h2> |
|---|
| | 173 | |
|---|
| | 174 | <p> |
|---|
| | 175 | SOAP4R is written in <a href="http://www.ruby-lang.org">Ruby</a> and |
|---|
| | 176 | aims to use with Ruby application. |
|---|
| | 177 | You have to install Ruby itself. |
|---|
| | 178 | Ruby/1.6 series or later is required. |
|---|
| | 179 | </p> |
|---|
| | 180 | <ul> |
|---|
| | 181 | <li>ruby-1.8.6</li> |
|---|
| | 182 | <li>ruby-1.6.8</li> |
|---|
| | 183 | </ul> |
|---|
| | 184 | |
|---|
| | 185 | <p> |
|---|
| | 186 | SOAP4R depends on following Ruby modules in |
|---|
| | 187 | <a href="http://raa.ruby-lang.org">RAA</a>. |
|---|
| | 188 | You also have to install these modules to use SOAP4R. |
|---|
| | 189 | </p> |
|---|
| | 190 | |
|---|
| | 191 | <h3><span class="content">for ruby-1.8.6</span></h3> |
|---|
| | 192 | |
|---|
| | 193 | <dl> |
|---|
| | 194 | <dt class="path"><a href="http://raa.ruby-lang.org/project/http-access2/">[RAA:http-access2]</a> (2.0.5) (required for SSL)</dt> |
|---|
| | 195 | <dd>Yet another HTTP client implementation by NaHi. |
|---|
| | 196 | It's not required when you don't use SSL, but it's recommended to use. |
|---|
| | 197 | The author always runs and checks soap4r with http-access2.</dd> |
|---|
| | 198 | |
|---|
| | 199 | <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> |
|---|
| | 200 | <dd>by Yoshida Masato. |
|---|
| | 201 | It is requred when you want automatic CES conversion between |
|---|
| | 202 | SJIS <-> UTF8 and EUC <-> UTF8. |
|---|
| | 203 | Note: SJIS <-> EUC uses NKF module which is in standard distribution. |
|---|
| | 204 | </dd> |
|---|
| | 205 | |
|---|
| | 206 | </dl> |
|---|
| | 207 | |
|---|
| | 208 | <h3><span class="content">for ruby-1.6.8</span></h3> |
|---|
| | 209 | |
|---|
| | 210 | <dl> |
|---|
| | 211 | <dt class="path"><a href="http://raa.ruby-lang.org/project/webrick/">[RAA:webrick]</a> (1.3.1)</dt> |
|---|
| | 212 | <dd>TCP server toolkit by Gotoyuzo.</dd> |
|---|
| | 213 | |
|---|
| | 214 | <dt class="path"><a href="http://raa.ruby-lang.org/project/http-access2/">[RAA:http-access2]</a> (2.0.5)</dt> |
|---|
| | 215 | <dd>Yet another HTTP client implementation by NaHi.</dd> |
|---|
| | 216 | |
|---|
| | 217 | <dt class="path"><a href="http://raa.ruby-lang.org/project/devel-logger/">[RAA:devel-logger]</a> (1.1.0)</dt> |
|---|
| | 218 | <dd>Logging utility by NaHi.</dd> |
|---|
| | 219 | |
|---|
| | 220 | <dt class="path"><a href="http://raa.ruby-lang.org/project/date2/">[RAA:date2]</a> (3.2)</dt> |
|---|
| | 221 | <dd>Date and DateTime implementation by Todayoshi Funaba.</dd> |
|---|
| | 222 | |
|---|
| | 223 | <dt class="path"><a href="http://raa.ruby-lang.org/project/uconv/">[RAA:uconv]</a> (0.4.10) (required for UTF-8 handling)</dt> |
|---|
| | 224 | <dd>by Yoshida Masato. |
|---|
| | 225 | It is requred when you want automatic CES conversion between |
|---|
| | 226 | SJIS <-> UTF8 and EUC <-> UTF8. |
|---|
| | 227 | Note: SJIS <-> EUC uses NKF module which is in standard distribution. |
|---|
| | 228 | </dd> |
|---|
| | 229 | |
|---|
| | 230 | </dl> |
|---|
| | 231 | |
|---|
| | 232 | <h2 id="samples" name="samples"><span class="content">6. Samples</span></h2> |
|---|
| | 233 | |
|---|
| | 234 | <p> |
|---|
| | 235 | Samples are in sample/ directory of distribution. |
|---|
| | 236 | Some samples try to connect to public servers. |
|---|
| | 237 | Set environment variable SOAP_USE_PROXY and HTTP_PROXY if you are in a firewall and you have |
|---|
| | 238 | http proxy to the internet like; |
|---|
| | 239 | </p> |
|---|
| | 240 | <pre class="path"> |
|---|
| | 241 | $ export SOAP_USE_PROXY=on |
|---|
| | 242 | $ export HTTP_PROXY=http://myproxyserver:8080 |
|---|
| | 243 | or |
|---|
| | 244 | $ setenv SOAP_USE_PROXY on |
|---|
| | 245 | $ setenv HTTP_PROXY http://myproxyserver:8080 |
|---|
| | 246 | </pre> |
|---|
| | 247 | |
|---|
| | 248 | <h3><span class="content">basic/ ... basic samples</span></h3> |
|---|
| | 249 | |
|---|
| | 250 | <dl> |
|---|
| | 251 | <dt class="path">babelfish.rb</dt> |
|---|
| | 252 | <dd>a SOAP client sample to connect to a babelfish server.</dd> |
|---|
| | 253 | <dt class="path">whois.rb</dt> |
|---|
| | 254 | <dd>a SOAP client sample to connect to a whois server.</dd> |
|---|
| | 255 | <dt class="path">flickr.rb</dt> |
|---|
| | 256 | <dd>a SOAP client sample to connect to the flickr SOAP server and extract data from XML response.</dd> |
|---|
| | 257 | <dt class="path">yahooNewsSearch.rb</dt> |
|---|
| | 258 | <dd>a HTTP client sample to connect to the Yahoo news search REST service and extract data from XML response.</dd> |
|---|
| | 259 | |
|---|
| | 260 | <dt class="path">helloworld/</dt> |
|---|
| | 261 | <dd>a SOAP server and client sample of 'Hello World'. |
|---|
| | 262 | To run the server; |
|---|
| | 263 | <pre class="path"> |
|---|
| | 264 | $ ./server.rb |
|---|
| | 265 | </pre> |
|---|
| | 266 | And to connect to the server, run the client; |
|---|
| | 267 | <pre class="path"> |
|---|
| | 268 | $ ./client.rb |
|---|
| | 269 | </pre> |
|---|
| | 270 | </dd> |
|---|
| | 271 | |
|---|
| | 272 | <dt class="path">calc/</dt> |
|---|
| | 273 | <dd>Calc service contains 2 servers and 2 clients. |
|---|
| | 274 | calc.rb is hosted by server.rb, calc2.rb is hosted by server2.rb. |
|---|
| | 275 | client.rb is for server.rb, client2.rb is for server2.rb. |
|---|
| | 276 | <dl> |
|---|
| | 277 | <dt>calc.rb</dt> |
|---|
| | 278 | <dd>Calc server definition using module and module methods. |
|---|
| | 279 | This module responds 'add', 'sub', 'multi' and 'div'. |
|---|
| | 280 | </dd> |
|---|
| | 281 | <dt>server.rb</dt> |
|---|
| | 282 | <dd>Standalone server. |
|---|
| | 283 | It requires calc.rb and serve module methods of this module. |
|---|
| | 284 | To run this server; |
|---|
| | 285 | <pre class="path"> |
|---|
| | 286 | $ ./server.rb |
|---|
| | 287 | </pre> |
|---|
| | 288 | </dd> |
|---|
| | 289 | <dt>server.cgi</dt> |
|---|
| | 290 | <dd>CGI version. |
|---|
| | 291 | To run this server, copy server.cgi and calc.rb to suitable |
|---|
| | 292 | directory of your WWW server. |
|---|
| | 293 | </dd> |
|---|
| | 294 | <dt>client.rb</dt> |
|---|
| | 295 | <dd>It connects to server.rb or server.cgi, |
|---|
| | 296 | and hit methods served by calc.rb. |
|---|
| | 297 | To run the client; |
|---|
| | 298 | <pre class="path"> |
|---|
| | 299 | $ ./client.rb |
|---|
| | 300 | </pre> |
|---|
| | 301 | Is it stacked? Did you run the server.rb?<br/> |
|---|
| | 302 | Turn logger and wireDumpDev in its source on to see logs and wire |
|---|
| | 303 | dumps of SOAP transport. |
|---|
| | 304 | </dd> |
|---|
| | 305 | <dt>calc2.rb</dt> |
|---|
| | 306 | <dd>Calc server definition using class and instance methods. |
|---|
| | 307 | An instance of this class holds its value. Methods 'set' and 'get' |
|---|
| | 308 | is to set/get the value. |
|---|
| | 309 | It also responds to '+', '-', '*', and '/'. |
|---|
| | 310 | </dd> |
|---|
| | 311 | <dt>server2.rb</dt> |
|---|
| | 312 | <dd>It requires calc2.rb and creates an instance of CalcService2 |
|---|
| | 313 | that responds all SOAP requests. |
|---|
| | 314 | Since '+', '-' and so on of calc2.rb are not valid name as an |
|---|
| | 315 | element in XML instance, this sample register the method '+' as |
|---|
| | 316 | 'add', '-' as 'sub', and so on. |
|---|
| | 317 | </dd> |
|---|
| | 318 | <dt>server2.cgi</dt> |
|---|
| | 319 | <dd>CGI version. |
|---|
| | 320 | To run this server, copy server2.cgi and calc2.rb to suitable |
|---|
| | 321 | directory of your WWW server. |
|---|
| | 322 | </dd> |
|---|
| | 323 | <dt>client2.rb</dt> |
|---|
| | 324 | <dd>It connects to server2.rb or server2.cgi. |
|---|
| | 325 | Set a value at first and call methods like 'puts objAtServer + 2'. |
|---|
| | 326 | </dd> |
|---|
| | 327 | </dl> |
|---|
| | 328 | </dd> |
|---|
| | 329 | |
|---|
| | 330 | <dt class="path">exchange/</dt> |
|---|
| | 331 | <dd>A sample to retrieve the currency rate from public SOAP service. |
|---|
| | 332 | <dl> |
|---|
| | 333 | <dt>iExchange.rb</dt> |
|---|
| | 334 | <dd>It includes common definitions for client and server of |
|---|
| | 335 | Exchange service. Including only a definition of namespace URI of |
|---|
| | 336 | this service.</dd> |
|---|
| | 337 | <dt>exchange.rb</dt> |
|---|
| | 338 | <dd>Definition of servant class ExchangeService which returns the |
|---|
| | 339 | currency rate after connecting to another site by SOAP to get the |
|---|
| | 340 | real rate. |
|---|
| | 341 | So that this class is the SOAP server for local client and |
|---|
| | 342 | is also a SOAP client for public server. |
|---|
| | 343 | An instance of this class is hosted by server.rb. |
|---|
| | 344 | The instance responds to only 'getRate' which receives two country |
|---|
| | 345 | code such as 'USA' and 'Japan'.</dd> |
|---|
| | 346 | <dt>server.rb</dt> |
|---|
| | 347 | <dd>It requires exchange.rb and creates an instance of |
|---|
| | 348 | ExchangeService that responds all SOAP requests. |
|---|
| | 349 | To run this server; |
|---|
| | 350 | <pre class="path"> |
|---|
| | 351 | $ ./server.rb |
|---|
| | 352 | </pre> |
|---|
| | 353 | </dd> |
|---|
| | 354 | <dt>server.cgi</dt> |
|---|
| | 355 | <dd>CGI version. To run this server, copy server.cgi and exchange.rb |
|---|
| | 356 | to suitable directory of your WWW server.</dd> |
|---|
| | 357 | <dt>client.rb</dt> |
|---|
| | 358 | <dd>It connects to server.rb. Turn logger and wireDumpDev in its |
|---|
| | 359 | source on to see logs and wire dumps of SOAP transport. |
|---|
| | 360 | To run the client; |
|---|
| | 361 | <pre class="path"> |
|---|
| | 362 | $ ./client.rb |
|---|
| | 363 | </pre> |
|---|
| | 364 | </dd> |
|---|
| | 365 | </dl> |
|---|
| | 366 | </dd> |
|---|
| | 367 | |
|---|
| | 368 | <dt class="path">sampleStruct/</dt> |
|---|
| | 369 | <dd>A sample to transmit complex structured object which has recursive |
|---|
| | 370 | object reference. |
|---|
| | 371 | <dl> |
|---|
| | 372 | <dt>iSampleStruct.rb</dt> |
|---|
| | 373 | <dd>It includes common definitions for client and server of |
|---|
| | 374 | SampleStruct service. Definition of SampleStruct class and |
|---|
| | 375 | namespace URI of this service.</dd> |
|---|
| | 376 | <dt>sampleStruct.rb</dt> |
|---|
| | 377 | <dd>Definition of servant class SampleStructService. |
|---|
| | 378 | An instance of this class is hosted by server.rb. |
|---|
| | 379 | The instance responds to only 'hi' which receives a SampleStruct |
|---|
| | 380 | and wraps it in the new instance of SampleStruct to return .</dd> |
|---|
| | 381 | <dt>server.rb</dt> |
|---|
| | 382 | <dd>It requires sampleStruct.rb and creates an instance of |
|---|
| | 383 | SampleStructService that responds all SOAP requests. |
|---|
| | 384 | To run this server; |
|---|
| | 385 | <pre class="path"> |
|---|
| | 386 | $ ./server.rb |
|---|
| | 387 | </pre> |
|---|
| | 388 | </dd> |
|---|
| | 389 | <dt>server.cgi</dt> |
|---|
| | 390 | <dd>CGI version. To run this server, copy server.cgi and |
|---|
| | 391 | sampleStruct.rb to suitable directory of your WWW server.</dd> |
|---|
| | 392 | <dt>client.rb</dt> |
|---|
| | 393 | <dd>It connects to server.rb. Turn logger and wireDumpDev in its |
|---|
| | 394 | source on to see logs and wire dumps of SOAP transport. |
|---|
| | 395 | To run the client; |
|---|
| | 396 | <pre class="path"> |
|---|
| | 397 | $ ./client.rb |
|---|
| | 398 | </pre> |
|---|
| | 399 | </dd> |
|---|
| | 400 | </dl> |
|---|
| | 401 | </dd> |
|---|
| | 402 | |
|---|
| | 403 | <dt class="path">wsdl_helloworld/</dt> |
|---|
| | 404 | <dd>A sample 'Hello World' SOAP client and server which utilize WSDL. |
|---|
| | 405 | See wsdl_helloworld/README for more detail</dd> |
|---|
| | 406 | </dl> |
|---|
| | 407 | |
|---|
| | 408 | <h3><span class="content">payload/ ... various payload configuration</span></h3> |
|---|
| | 409 | |
|---|
| | 410 | <dl> |
|---|
| | 411 | <dt class="path">basicauth/</dt> |
|---|
| | 412 | <dd>BasicAuth server and client sample.</dd> |
|---|
| | 413 | |
|---|
| | 414 | <dt class="path">cookies/</dt> |
|---|
| | 415 | <dd>HTTP-Cookies server and client sample.</dd> |
|---|
| | 416 | |
|---|
| | 417 | <dt class="path">ssl/</dt> |
|---|
| | 418 | <dd>SSL SOAP server and client samples. |
|---|
| | 419 | <dl> |
|---|
| | 420 | <dt class="path">sslserver.rb</dt> |
|---|
| | 421 | <dd>SSL server sample which hosts "hello world" service. |
|---|
| | 422 | This server uses SSL server certificate in files/ directory |
|---|
| | 423 | (SSL client should check this certificate for SSL server |
|---|
| | 424 | authentication).</dd> |
|---|
| | 425 | <dt class="path">sslserver_noauth.rb</dt> |
|---|
| | 426 | <dd>This server generates SSL server certificate |
|---|
| | 427 | at runtime. No security.</dd> |
|---|
| | 428 | <dt class="path">sslserver_require_clientauth.rb</dt> |
|---|
| | 429 | <dd>This server users SSL server certificate in files/ directory |
|---|
| | 430 | and requires SSL client authentication (clients must |
|---|
| | 431 | have SSL client certificate and send it to the server).</dd> |
|---|
| | 432 | <dt class="path">sslclient.rb</dt> |
|---|
| | 433 | <dd>SSL client sample which calls "hello world" service via HTTPS. |
|---|
| | 434 | This client checks SSL server certificate sent from SSL server.</dd> |
|---|
| | 435 | <dt class="path">sslclient_require_noserverauth.rb</dt> |
|---|
| | 436 | <dd>This client does not check SSL server certificate. |
|---|
| | 437 | No security.</dd> |
|---|
| | 438 | <dt class="path">sslclient_with_clientauth.rb</dt> |
|---|
| | 439 | <dd>This client sends SSL client certificate in files/ directory |
|---|
| | 440 | and checks SSL server certificate.</dd> |
|---|
| | 441 | </dl> |
|---|
| | 442 | </dd> |
|---|
| | 443 | |
|---|
| | 444 | <dt class="path">gzipped/</dt> |
|---|
| | 445 | <dd>gzipped content negotiation server and client sample.</dd> |
|---|
| | 446 | </dl> |
|---|
| | 447 | |
|---|
| | 448 | <h3><span class="content">soapheader/ ... SOAPHeader configuration</span></h3> |
|---|
| | 449 | |
|---|
| | 450 | <dl> |
|---|
| | 451 | <dt class="path">authheader/</dt> |
|---|
| | 452 | <dd>It contains a sample to utilize SOAP Header handler. Send |
|---|
| | 453 | userid/passwd and receive sessionid via SOAP Header</dd> |
|---|
| | 454 | |
|---|
| | 455 | <dt class="path">soapext_basicauth/</dt> |
|---|
| | 456 | <dd>It contains a sample to do BasicAuth in SOAPHeader. (http://soap-authentication.org/basic/2001/10/)</dd> |
|---|
| | 457 | </dl> |
|---|
| | 458 | |
|---|
| | 459 | <h3><span class="content">attachment/ ... SOAP with Attachment (SwA)</span></h3> |
|---|
| | 460 | |
|---|
| | 461 | <dl> |
|---|
| | 462 | <dt class="path">swa/</dt> |
|---|
| | 463 | <dd>SOAP server and client sample of SwA (SOAP with Attachments).</dd> |
|---|
| | 464 | |
|---|
| | 465 | <dt class="path">complexmime/</dt> |
|---|
| | 466 | <dd>SOAP server and client sample of Complex Type + SwA</dd> |
|---|
| | 467 | </dl> |
|---|
| | 468 | |
|---|
| | 469 | <h3><span class="content">howto/ ... various other configuration</span></h3> |
|---|
| | 470 | |
|---|
| | 471 | <dl> |
|---|
| | 472 | <dt class="path">as_xml/</dt> |
|---|
| | 473 | <dd>Sample client to send a request with XML, and receive a response as XML.</dd> |
|---|
| | 474 | |
|---|
| | 475 | <dt class="path">base64/</dt> |
|---|
| | 476 | <dd>Sample client to send/receive base64 data.</dd> |
|---|
| | 477 | |
|---|
| | 478 | <dt class="path">documentliteral/</dt> |
|---|
| | 479 | <dd>Sample client and server of document/literal service. See README.txt in this directory to run this sample.</dd> |
|---|
| | 480 | |
|---|
| | 481 | <dt class="path">filter/</dt> |
|---|
| | 482 | <dd>Sample client and server of filtering request/response before sending/receiving.</dd> |
|---|
| | 483 | |
|---|
| | 484 | <dt class="path">scopesample/</dt> |
|---|
| | 485 | <dd>SOAP server sample which shows a different behavior of SOAP server scope settings; Request scope vs Application scope. |
|---|
| | 486 | sample/soap/scopesample/servant.rb is a servant which holds push-ed |
|---|
| | 487 | object that can be pop-ed afterward. |
|---|
| | 488 | See sample/soap/scopesample/server.rb how to define a servant as |
|---|
| | 489 | a Request scope servant or an Application scope servant. |
|---|
| | 490 | Application scope servant works as we expected because the servant |
|---|
| | 491 | object is living from beginning to the time server terminated. |
|---|
| | 492 | In contrast, request scope servant(s) does not work because a servant |
|---|
| | 493 | object is created for each request. |
|---|
| | 494 | </dd> |
|---|
| | 495 | |
|---|
| | 496 | <dt class="path">styleuse/</dt> |
|---|
| | 497 | <dd>Sample client and server of SOAP style and use combination, especially rpc/literal and document/encoded.</dd> |
|---|
| | 498 | |
|---|
| | 499 | <dt class="path">wsdl_fault/</dt> |
|---|
| | 500 | <dd>Sample client and server of handling SOAP fault specified in a WSDL. See wsdl_fault/README.txt for more detail.</dd> |
|---|
| | 501 | |
|---|
| | 502 | <dt class="path">wsdl_hash/</dt> |
|---|
| | 503 | <dd>Sample client and server of sending/receiving Hash struct defined in a WSDL.</dd> |
|---|
| | 504 | </dl> |
|---|
| | 505 | |
|---|
| | 506 | <h3><span class="content">marshal/ ... object <-> XML marshalling</span></h3> |
|---|
| | 507 | |
|---|
| | 508 | <dl> |
|---|
| | 509 | <dt class="path">digraph.rb</dt> |
|---|
| | 510 | <dd>A sample of SOAP marshalling/unmarshalling. |
|---|
| | 511 | It creates a digraph that contains multi-ref-ed nodes at first |
|---|
| | 512 | and marshals this object to get serialized XML instance. |
|---|
| | 513 | Then reads and unmarshals this XML instance to recover a object |
|---|
| | 514 | which has the same links among nodes in the digraph. |
|---|
| | 515 | </dd> |
|---|
| | 516 | |
|---|
| | 517 | <dt class="path">customfactory.rb</dt> |
|---|
| | 518 | <dd>Sample program for customizing mapping registry.</dd> |
|---|
| | 519 | |
|---|
| | 520 | <dt class="path">enum/</dt> |
|---|
| | 521 | <dd>Sample program to demonstrate how xsd2ruby.rb works.</dd> |
|---|
| | 522 | </dl> |
|---|
| | 523 | |
|---|
| | 524 | <h3><span class="content">showcase/ ... showcase sample to demonstrate</span></h3> |
|---|
| | 525 | |
|---|
| | 526 | <dl> |
|---|
| | 527 | <dt class="path">raa2.4/</dt> |
|---|
| | 528 | <dd>sample/soap/raa2.4/sample.rb is a sample client to retrieve project |
|---|
| | 529 | information on RAA. It uses raaDriver.rb which is generated by |
|---|
| | 530 | wsdl2ruby.rb from WSDL at |
|---|
| | 531 | <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>. |
|---|
| | 532 | You'll find wsdlDriver.rb in sample/wsdl/raa2.4/wsdlDriver.rb which |
|---|
| | 533 | loads the WSDL at runtime to connect.</dd> |
|---|
| | 534 | |
|---|
| | 535 | <dt class="path">icd/</dt> |
|---|
| | 536 | <dd>A client for |
|---|
| | 537 | <a href="http://www.iwebmethod.net/">Insider's Computer Dictionary Web Service</a>. |
|---|
| | 538 | This service is implemented with ASP.NET so that it's also a sample of |
|---|
| | 539 | a client which connects to ASP.NET. |
|---|
| | 540 | CAUTION: this sample contains non-ascii chars in its source and dumped |
|---|
| | 541 | results. |
|---|
| | 542 | <dl> |
|---|
| | 543 | <dt>IICD.rb</dt> |
|---|
| | 544 | <dd>Class(type) definitions for this server.</dd> |
|---|
| | 545 | <dt>icd.rb</dt> |
|---|
| | 546 | <dd>Client implementation. To run the client; |
|---|
| | 547 | <pre class="path"> |
|---|
| | 548 | $ ./icd.rb |
|---|
| | 549 | </pre> |
|---|
| | 550 | </dd> |
|---|
| | 551 | </dl> |
|---|
| | 552 | </dd> |
|---|
| | 553 | |
|---|
| | 554 | <dt class="path">googleSearch/</dt> |
|---|
| | 555 | <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> |
|---|
| | 556 | |
|---|
| | 557 | <dt class="path">amazon/</dt> |
|---|
| | 558 | <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> |
|---|
| | 559 | |
|---|
| | 560 | <dt class="path">noaa/</dt> |
|---|
| | 561 | <dd>Sample client of National Weather Service digital weather forecast data service at http://weather.gov/</dd> |
|---|
| | 562 | |
|---|
| | 563 | <dt class="path">raa2.4/</dt> |
|---|
| | 564 | <dd>sample/wsdl/raa2.4/wsdlDriver.rb is a sample client to retrieve |
|---|
| | 565 | project information on RAA. It loads WSDL file |
|---|
| | 566 | <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> |
|---|
| | 567 | at <strong>runtime</strong>. |
|---|
| | 568 | You'll find a sample client at sample/soap/raa2.4/sample.rb |
|---|
| | 569 | which connects RAA using pre-generated service definitions |
|---|
| | 570 | (not loads WSDL at runtime).</dd> |
|---|
| | 571 | |
|---|
| | 572 | <dt class="path">googleAdwords/</dt> |
|---|
| | 573 | <dd>Sample client of Google AdWords service. |
|---|
| | 574 | CAUTION: I don't have an account of AdWords so the sample code is NOT |
|---|
| | 575 | tested. Please tell me (nahi@ruby-lang.org) if you will get good/bad |
|---|
| | 576 | result in communicating with AdWords Server.</dd> |
|---|
| | 577 | |
|---|
| | 578 | <dt class="path">amazonEC/</dt> |
|---|
| | 579 | <dd>Sample client of AWSECommerce service. |
|---|
| | 580 | CAUTION: I don't have an account of AWSECommerce so the sample code is |
|---|
| | 581 | NOT tested. Please tell me (nahi@ruby-lang.org) if you will get |
|---|
| | 582 | good/bad result in communicating with AWSECommerce Server.</dd> |
|---|
| | 583 | </dl> |
|---|
| | 584 | |
|---|
| | 585 | <p> |
|---|
| | 586 | There are more samples in this directory. |
|---|
| | 587 | </p> |
|---|
| | 588 | |
|---|
| | 589 | <h2 id="resources" name="resources"><span class="content">7. Resources</span></h2> |
|---|
| | 590 | |
|---|
| | 591 | <dl> |
|---|
| | 592 | <dt class="path"><a href="http://dev.ctor.org/soap4r">soap4r project page</a></dt> |
|---|
| | 593 | <dd>You can get the latest information and the latest development version of soap4r here.</dd> |
|---|
| | 594 | |
|---|
| | 595 | <dt class="path"><a href="http://raa.ruby-lang.org/project/soap4r">[RAA:soap4r]</a></dt> |
|---|
| | 596 | <dd>RAA meta information</dd> |
|---|
| | 597 | |
|---|
| | 598 | <dt class="path"><a href="http://groups.google.com/group/soap4r">soap4r-ml on Google Groups</a></dt> |
|---|
| | 599 | <dd>Feel free to join the list to ask any question and comment about soap4r. |
|---|
| | 600 | You can browse messages archive. Bear in mind that Google Groups is still |
|---|
| | 601 | in [beta] stage.</dd> |
|---|
| | 602 | |
|---|
| | 603 | <dt class="path">Subversion repository</dt> |
|---|
| | 604 | <dd>Soap4r's svn repository is here: http://dev.ctor.org/svn/soap4r/ . |
|---|
| | 605 | To checkout the latest soap4r module, try |
|---|
| | 606 | <pre> |
|---|
| | 607 | svn checkout http://dev.ctor.org/svn/soap4r/trunk soap4r |
|---|
| | 608 | </pre> |
|---|
| | 609 | CVS repository of soap4r which was located at cvs.ruby-lang.org is pending since 2004-05-27. </dd> |
|---|
| | 610 | </dl> |
|---|
| | 611 | |
|---|
| | 612 | <h2 id="history" name="history"><span class="content">8. History</span></h2> |
|---|
| | 613 | |
|---|
| | 614 | <dl> |
|---|
| | 615 | <dt>1.5.6 - Jun 14, 2007</dt> |
|---|
| | 616 | <dd>Here are changes in 1.5.6 from 1.5.5. |
|---|
| 293 | | </dl> |
|---|
| 294 | | |
|---|
| 295 | | <h2 id="uninstall" name="uninstall"><span class="content">3. Uninstall</span></h2> |
|---|
| 296 | | |
|---|
| 297 | | <p> |
|---|
| 298 | | Simply delete installed files. |
|---|
| 299 | | </p> |
|---|
| 300 | | |
|---|
| 301 | | <h2 id="whats" name="whats"><span class="content">4. What is SOAP4R?</span></h2> |
|---|
| 302 | | |
|---|
| 303 | | <p> |
|---|
| 304 | | 'SOAP4R' is an implementation of |
|---|
| 305 | | <a href="http://www.w3.org/TR/SOAP/">SOAP 1.1 (W3C Note)</a>. |
|---|
| 306 | | </p> |
|---|
| 307 | | |
|---|
| 308 | | <p> |
|---|
| 309 | | Comments, information such as interoperability between SOAP4R and another implementation are welcomed. |
|---|
| 310 | | Feel free sending mail to |
|---|
| 311 | | <a href="mailto:nahi@ruby-lang.org" class="path">nahi@ruby-lang.org</a>. |
|---|
| 312 | | </p> |
|---|
| 313 | | |
|---|
| 314 | | <h2 id="dependencies" name="dependencies"><span class="content">5. Dependencies</span></h2> |
|---|
| 315 | | |
|---|
| 316 | | <p> |
|---|
| 317 | | SOAP4R is written in <a href="http://www.ruby-lang.org">Ruby</a> and |
|---|
| 318 | | aims to use with Ruby application. |
|---|
| 319 | | You have to install Ruby itself. |
|---|
| 320 | | Ruby/1.6 series or later is required. |
|---|
| 321 | | </p> |
|---|
| 322 | | <ul> |
|---|
| 323 | | <li>ruby-1.8.6</li> |
|---|
| 324 | | <li>ruby-1.6.8</li> |
|---|
| 325 | | </ul> |
|---|
| 326 | | |
|---|
| 327 | | <p> |
|---|
| 328 | | SOAP4R depends on following Ruby modules in |
|---|
| 329 | | <a href="http://raa.ruby-lang.org">RAA</a>. |
|---|
| 330 | | You also have to install these modules to use SOAP4R. |
|---|
| 331 | | </p> |
|---|
| 332 | | |
|---|
| 333 | | <h3><span class="content">for ruby-1.8.6</span></h3> |
|---|
| 334 | | |
|---|
| 335 | | <dl> |
|---|
| 336 | | <dt class="path"><a href="http://raa.ruby-lang.org/project/http-access2/">[RAA:http-access2]</a> (2.0.5) (required for SSL)</dt> |
|---|
| 337 | | <dd>Yet another HTTP client implementation by NaHi. |
|---|
| 338 | | It's not required when you don't use SSL, but it's recommended to use. |
|---|
| 339 | | The author always runs and checks soap4r with http-access2.</dd> |
|---|
| 340 | | |
|---|
| 341 | | <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> |
|---|
| 342 | | <dd>by Yoshida Masato. |
|---|
| 343 | | It is requred when you want automatic CES conversion between |
|---|
| 344 | | SJIS <-> UTF8 and EUC <-> UTF8. |
|---|
| 345 | | Note: SJIS <-> EUC uses NKF module which is in standard distribution. |
|---|
| 346 | | </dd> |
|---|
| 347 | | |
|---|
| 348 | | </dl> |
|---|
| 349 | | |
|---|
| 350 | | <h3><span class="content">for ruby-1.6.8</span></h3> |
|---|
| 351 | | |
|---|
| 352 | | <dl> |
|---|
| 353 | | <dt class="path"><a href="http://raa.ruby-lang.org/project/webrick/">[RAA:webrick]</a> (1.3.1)</dt> |
|---|
| 354 | | <dd>TCP server toolkit by Gotoyuzo.</dd> |
|---|
| 355 | | |
|---|
| 356 | | <dt class="path"><a href="http://raa.ruby-lang.org/project/http-access2/">[RAA:http-access2]</a> (2.0.5)</dt> |
|---|
| 357 | | <dd>Yet another HTTP client implementation by NaHi.</dd> |
|---|
| 358 | | |
|---|
| 359 | | <dt class="path"><a href="http://raa.ruby-lang.org/project/devel-logger/">[RAA:devel-logger]</a> (1.1.0)</dt> |
|---|
| 360 | | <dd>Logging utility by NaHi.</dd> |
|---|
| 361 | | |
|---|
| 362 | | <dt class="path"><a href="http://raa.ruby-lang.org/project/date2/">[RAA:date2]</a> (3.2)</dt> |
|---|
| 363 | | <dd>Date and DateTime implementation by Todayoshi Funaba.</dd> |
|---|
| 364 | | |
|---|
| 365 | | <dt class="path"><a href="http://raa.ruby-lang.org/project/uconv/">[RAA:uconv]</a> (0.4.10) (required for UTF-8 handling)</dt> |
|---|
| 366 | | <dd>by Yoshida Masato. |
|---|
| 367 | | It is requred when you want automatic CES conversion between |
|---|
| 368 | | SJIS <-> UTF8 and EUC <-> UTF8. |
|---|
| 369 | | Note: SJIS <-> EUC uses NKF module which is in standard distribution. |
|---|
| 370 | | </dd> |
|---|
| 371 | | |
|---|
| 372 | | </dl> |
|---|
| 373 | | |
|---|
| 374 | | <h2 id="samples" name="samples"><span class="content">6. Samples</span></h2> |
|---|
| 375 | | |
|---|
| 376 | | <p> |
|---|
| 377 | | Samples are in sample/ directory of distribution. |
|---|
| 378 | | Some samples try to connect to public servers. |
|---|
| 379 | | Set environment variable SOAP_USE_PROXY and HTTP_PROXY if you are in a firewall and you have |
|---|
| 380 | | http proxy to the internet like; |
|---|
| 381 | | </p> |
|---|
| 382 | | <pre class="path"> |
|---|
| 383 | | $ export SOAP_USE_PROXY=on |
|---|
| 384 | | $ export HTTP_PROXY=http://myproxyserver:8080 |
|---|
| 385 | | or |
|---|
| 386 | | $ setenv SOAP_USE_PROXY on |
|---|
| 387 | | $ setenv HTTP_PROXY http://myproxyserver:8080 |
|---|
| 388 | | </pre> |
|---|
| 389 | | |
|---|
| 390 | | <h3><span class="content">basic/ ... basic samples</span></h3> |
|---|
| 391 | | |
|---|
| 392 | | <dl> |
|---|
| 393 | | <dt class="path">babelfish.rb</dt> |
|---|
| 394 | | <dd>a SOAP client sample to connect to a babelfish server.</dd> |
|---|
| 395 | | <dt class="path">whois.rb</dt> |
|---|
| 396 | | <dd>a SOAP client sample to connect to a whois server.</dd> |
|---|
| 397 | | <dt class="path">flickr.rb</dt> |
|---|
| 398 | | <dd>a SOAP client sample to connect to the flickr SOAP server and extract data from XML response.</dd> |
|---|
| 399 | | <dt class="path">yahooNewsSearch.rb</dt> |
|---|
| 400 | | <dd>a HTTP client sample to connect to the Yahoo news search REST service and extract data from XML response.</dd> |
|---|
| 401 | | |
|---|
| 402 | | <dt class="path">helloworld/</dt> |
|---|
| 403 | | <dd>a SOAP server and client sample of 'Hello World'. |
|---|
| 404 | | To run the server; |
|---|
| 405 | | <pre class="path"> |
|---|
| 406 | | $ ./server.rb |
|---|
| 407 | | </pre> |
|---|
| 408 | | And to connect to the server, run the client; |
|---|
| 409 | | <pre class="path"> |
|---|
| 410 | | $ ./client.rb |
|---|
| 411 | | </pre> |
|---|
| 412 | | </dd> |
|---|
| 413 | | |
|---|
| 414 | | <dt class="path">calc/</dt> |
|---|
| 415 | | <dd>Calc service contains 2 servers and 2 clients. |
|---|
| 416 | | calc.rb is hosted by server.rb, calc2.rb is hosted by server2.rb. |
|---|
| 417 | | client.rb is for server.rb, client2.rb is for server2.rb. |
|---|
| 418 | | <dl> |
|---|
| 419 | | <dt>calc.rb</dt> |
|---|
| 420 | | <dd>Calc server definition using module and module methods. |
|---|
| 421 | | This module responds 'add', 'sub', 'multi' and 'div'. |
|---|
| 422 | | </dd> |
|---|
| 423 | | <dt>server.rb</dt> |
|---|
| 424 | | <dd>Standalone server. |
|---|
| 425 | | It requires calc.rb and serve module methods of this module. |
|---|
| 426 | | To run this server; |
|---|
| 427 | | <pre class="path"> |
|---|
| 428 | | $ ./server.rb |
|---|
| 429 | | </pre> |
|---|
| 430 | | </dd> |
|---|
| 431 | | <dt>server.cgi</dt> |
|---|
| 432 | | <dd>CGI version. |
|---|
| 433 | | To run this server, copy server.cgi and calc.rb to suitable |
|---|
| 434 | | directory of your WWW server. |
|---|
| 435 | | </dd> |
|---|
| 436 | | <dt>client.rb</dt> |
|---|
| 437 | | <dd>It connects to server.rb or server.cgi, |
|---|
| 438 | | and hit methods served by calc.rb. |
|---|
| 439 | | To run the client; |
|---|
| 440 | | <pre class="path"> |
|---|
| 441 | | $ ./client.rb |
|---|
| 442 | | </pre> |
|---|
| 443 | | Is it stacked? Did you run the server.rb?<br/> |
|---|
| 444 | | Turn logger and wireDumpDev in its source on to see logs and wire |
|---|
| 445 | | dumps of SOAP transport. |
|---|
| 446 | | </dd> |
|---|
| 447 | | <dt>calc2.rb</dt> |
|---|
| 448 | | <dd>Calc server definition using class and instance methods. |
|---|
| 449 | | An instance of this class holds its value. Methods 'set' and 'get' |
|---|
| 450 | | is to set/get the value. |
|---|
| 451 | | It also responds to '+', '-', '*', and '/'. |
|---|
| 452 | | </dd> |
|---|
| 453 | | <dt>server2.rb</dt> |
|---|
| 454 | | <dd>It requires calc2.rb and creates an instance of CalcService2 |
|---|
| 455 | | that responds all SOAP requests. |
|---|
| 456 | | Since '+', '-' and so on of calc2.rb are not valid name as an |
|---|
| 457 | | element in XML instance, this sample register the method '+' as |
|---|
| 458 | | 'add', '-' as 'sub', and so on. |
|---|
| 459 | | </dd> |
|---|
| 460 | | <dt>server2.cgi</dt> |
|---|
| 461 | | <dd>CGI version. |
|---|
| 462 | | To run this server, copy server2.cgi and calc2.rb to suitable |
|---|
| 463 | | directory of your WWW server. |
|---|
| 464 | | </dd> |
|---|
| 465 | | <dt>client2.rb</dt> |
|---|
| 466 | | <dd>It connects to server2.rb or server2.cgi. |
|---|
| 467 | | Set a value at first and call methods like 'puts objAtServer + 2'. |
|---|
| 468 | | </dd> |
|---|
| 469 | | </dl> |
|---|
| 470 | | </dd> |
|---|
| 471 | | |
|---|
| 472 | | <dt class="path">exchange/</dt> |
|---|
| 473 | | <dd>A sample to retrieve the currency rate from public SOAP service. |
|---|
| 474 | | <dl> |
|---|
| 475 | | <dt>iExchange.rb</dt> |
|---|
| 476 | | <dd>It includes common definitions for client and server of |
|---|
| 477 | | Exchange service. Including only a definition of namespace URI of |
|---|
| 478 | | this service.</dd> |
|---|
| 479 | | <dt>exchange.rb</dt> |
|---|
| 480 | | <dd>Definition of servant class ExchangeService which returns the |
|---|
| 481 | | currency rate after connecting to another site by SOAP to get the |
|---|
| 482 | | real rate. |
|---|
| 483 | | So that this class is the SOAP server for local client and |
|---|
| 484 | | is also a SOAP client for public server. |
|---|
| 485 | | An instance of this class is hosted by server.rb. |
|---|
| 486 | | The instance responds to only 'getRate' which receives two country |
|---|
| 487 | | code such as 'USA' and 'Japan'.</dd> |
|---|
| 488 | | <dt>server.rb</dt> |
|---|
| 489 | | <dd>It requires exchange.rb and creates an instance of |
|---|
| 490 | | ExchangeService that responds all SOAP requests. |
|---|
| 491 | | To run this server; |
|---|
| 492 | | <pre class="path"> |
|---|
| 493 | | $ ./server.rb |
|---|
| 494 | | </pre> |
|---|
| 495 | | </dd> |
|---|
| 496 | | <dt>server.cgi</dt> |
|---|
| 497 | | <dd>CGI version. To run this server, copy server.cgi and exchange.rb |
|---|
| 498 | | to suitable directory of your WWW server.</dd> |
|---|
| 499 | | <dt>client.rb</dt> |
|---|
| 500 | | <dd>It connects to server.rb. Turn logger and wireDumpDev in its |
|---|
| 501 | | source on to see logs and wire dumps of SOAP transport. |
|---|
| 502 | | To run the client; |
|---|
| 503 | | <pre class="path"> |
|---|
| 504 | | $ ./client.rb |
|---|
| 505 | | </pre> |
|---|
| 506 | | </dd> |
|---|
| 507 | | </dl> |
|---|
| 508 | | </dd> |
|---|
| 509 | | |
|---|
| 510 | | <dt class="path">sampleStruct/</dt> |
|---|
| 511 | | <dd>A sample to transmit complex structured object which has recursive |
|---|
| 512 | | object reference. |
|---|
| 513 | | <dl> |
|---|
| 514 | | <dt>iSampleStruct.rb</dt> |
|---|
| 515 | | <dd>It includes common definitions for client and server of |
|---|
| 516 | | SampleStruct service. Definition of SampleStruct class and |
|---|
| 517 | | namespace URI of this service.</dd> |
|---|
| 518 | | <dt>sampleStruct.rb</dt> |
|---|
| 519 | | <dd>Definition of servant class SampleStructService. |
|---|
| 520 | | An instance of this class is hosted by server.rb. |
|---|
| 521 | | The instance responds to only 'hi' which receives a SampleStruct |
|---|
| 522 | | and wraps it in the new instance of SampleStruct to return .</dd> |
|---|
| 523 | | <dt>server.rb</dt> |
|---|
| 524 | | <dd>It requires sampleStruct.rb and creates an instance of |
|---|
| 525 | | SampleStructService that responds all SOAP requests. |
|---|
| 526 | | To run this server; |
|---|
| 527 | | <pre class="path"> |
|---|
| 528 | | $ ./server.rb |
|---|
| 529 | | </pre> |
|---|
| 530 | | </dd> |
|---|
| 531 | | <dt>server.cgi</dt> |
|---|
| 532 | | <dd>CGI version. To run this server, copy server.cgi and |
|---|
| 533 | | sampleStruct.rb to suitable directory of your WWW server.</dd> |
|---|
| 534 | | <dt>client.rb</dt> |
|---|
| 535 | | <dd>It connects to server.rb. Turn logger and wireDumpDev in its |
|---|
| 536 | | source on to see logs and wire dumps of SOAP transport. |
|---|
| 537 | | To run the client; |
|---|
| 538 | | <pre class="path"> |
|---|
| 539 | | $ ./client.rb |
|---|
| 540 | | </pre> |
|---|
| 541 | | </dd> |
|---|
| 542 | | </dl> |
|---|
| 543 | | </dd> |
|---|
| 544 | | |
|---|
| 545 | | <dt class="path">wsdl_helloworld/</dt> |
|---|
| 546 | | <dd>A sample 'Hello World' SOAP client and server which utilize WSDL. |
|---|
| 547 | | See wsdl_helloworld/README for more detail</dd> |
|---|
| 548 | | </dl> |
|---|
| 549 | | |
|---|
| 550 | | <h3><span class="content">payload/ ... various payload configuration</span></h3> |
|---|
| 551 | | |
|---|
| 552 | | <dl> |
|---|
| 553 | | <dt class="path">basicauth/</dt> |
|---|
| 554 | | <dd>BasicAuth server and client sample.</dd> |
|---|
| 555 | | |
|---|
| 556 | | <dt class="path">cookies/</dt> |
|---|
| 557 | | <dd>HTTP-Cookies server and client sample.</dd> |
|---|
| 558 | | |
|---|
| 559 | | <dt class="path">ssl/</dt> |
|---|
| 560 | | <dd>SSL SOAP server and client samples. |
|---|
| 561 | | <dl> |
|---|
| 562 | | <dt class="path">sslserver.rb</dt> |
|---|
| 563 | | <dd>SSL server sample which hosts "hello world" service. |
|---|
| 564 | | This server uses SSL server certificate in files/ directory |
|---|
| 565 | | (SSL client should check this certificate for SSL server |
|---|
| 566 | | authentication).</dd> |
|---|
| 567 | | <dt class="path">sslserver_noauth.rb</dt> |
|---|
| 568 | | <dd>This server generates SSL server certificate |
|---|
| 569 | | at runtime. No security.</dd> |
|---|
| 570 | | <dt class="path">sslserver_require_clientauth.rb</dt> |
|---|
| 571 | | <dd>This server users SSL server certificate in files/ directory |
|---|
| 572 | | and requires SSL client authentication (clients must |
|---|
| 573 | | have SSL client certificate and send it to the server).</dd> |
|---|
| 574 | | <dt class="path">sslclient.rb</dt> |
|---|
| 575 | | <dd>SSL client sample which calls "hello world" service via HTTPS. |
|---|
| 576 | | This client checks SSL server certificate sent from SSL server.</dd> |
|---|
| 577 | | <dt class="path">sslclient_require_noserverauth.rb</dt> |
|---|
| 578 | | <dd>This client does not check SSL server certificate. |
|---|
| 579 | | No security.</dd> |
|---|
| 580 | | <dt class="path">sslclient_with_clientauth.rb</dt> |
|---|
| 581 | | <dd>This client sends SSL client certificate in files/ directory |
|---|
| 582 | | and checks SSL server certificate.</dd> |
|---|
| 583 | | </dl> |
|---|
| 584 | | </dd> |
|---|
| 585 | | |
|---|
| 586 | | <dt class="path">gzipped/</dt> |
|---|
| 587 | | <dd>gzipped content negotiation server and client sample.</dd> |
|---|
| 588 | | </dl> |
|---|
| 589 | | |
|---|
| 590 | | <h3><span class="content">soapheader/ ... SOAPHeader configuration</span></h3> |
|---|
| 591 | | |
|---|
| 592 | | <dl> |
|---|
| 593 | | <dt class="path">authheader/</dt> |
|---|
| 594 | | <dd>It contains a sample to utilize SOAP Header handler. Send |
|---|
| 595 | | userid/passwd and receive sessionid via SOAP Header</dd> |
|---|
| 596 | | |
|---|
| 597 | | <dt class="path">soapext_basicauth/</dt> |
|---|
| 598 | &nbs |
|---|