| 120 | | Because of no documents or "How-to" things there, |
|---|
| 121 | | test/interopR2/server.cgi is a must RPC Server side sample to check. |
|---|
| 122 | | test/interopR2/client*.rb is a must RPC Client side sample to check. |
|---|
| 123 | | test/interopR2/base.rb includes common definitions for client/server side. |
|---|
| 124 | | </dd> |
|---|
| 125 | | |
|---|
| 126 | | <dt class="path">sample/</dt> |
|---|
| 127 | | <dd>Sample program using SOAP4R.</dd> |
|---|
| 128 | | |
|---|
| 129 | | <dt class="path">sample/apacheClient.rb</dt> |
|---|
| 130 | | <dd>SOAP-RPC client sample. |
|---|
| 131 | | It connects with demonstration server programs stockquote and addressbook in Apache-SOAP. |
|---|
| | 121 | Followings are advanced examples to use complex type transmit, |
|---|
| | 122 | sending base64 encoded string, multi-dimensional array, and so on. |
|---|
| | 123 | <ul> |
|---|
| | 124 | <li>test/interopR2/server.cgi is a RPC Server side implementation.</li> |
|---|
| | 125 | <li>test/interopR2/client*.rb is a RPC Client side implementation.</li> |
|---|
| | 126 | <li>test/interopR2/base.rb includes common definitions for client/server.</li> |
|---|
| | 127 | </ul> |
|---|
| | 128 | </dd> |
|---|
| | 129 | |
|---|
| | 130 | <dt class="path">redist/</dt> |
|---|
| | 131 | <dd>Redistributed modules which SOAP4R uses. |
|---|
| | 132 | I would appriciate to authors of these programs. |
|---|
| | 133 | </dd> |
|---|
| | 134 | |
|---|
| | 135 | </dl> |
|---|
| | 136 | |
|---|
| | 137 | <h2 id="uninstall" name="uninstall">3. Uninstall</h2> |
|---|
| | 138 | |
|---|
| | 139 | <p> |
|---|
| | 140 | Delete created files at installation. |
|---|
| | 141 | </p> |
|---|
| | 142 | |
|---|
| | 143 | <pre class="path"> |
|---|
| | 144 | ruby -rrbconfig -e 'include Config; puts CONFIG["sitedir"] + "/" + CONFIG["MAJOR"] + "." + CONFIG["MINOR"]' |
|---|
| | 145 | </pre> |
|---|
| | 146 | |
|---|
| | 147 | <p> |
|---|
| | 148 | should dump the installation root directory. |
|---|
| | 149 | Then, check "soap" directory and filename of files in "redist" directory. |
|---|
| | 150 | </p> |
|---|
| | 151 | |
|---|
| | 152 | <h2 id="whats" name="whats">4. What is SOAP4R?</h2> |
|---|
| | 153 | |
|---|
| | 154 | <p> |
|---|
| | 155 | 'SOAP4R' is an implementation of |
|---|
| | 156 | <a href="http://www.w3.org/TR/SOAP/">Simple Object Access Protocol (SOAP) 1.1 (W3C Note)</a>. |
|---|
| | 157 | </p> |
|---|
| | 158 | |
|---|
| | 159 | <p> |
|---|
| | 160 | Comments, information such as interoperability between SOAP4R and another implementation are welcomed. |
|---|
| | 161 | Feel free sending mail to |
|---|
| | 162 | <a href="mailto:nakahiro@sarion.co.jp" class="path">nakahiro@sarion.co.jp</a>. |
|---|
| | 163 | </p> |
|---|
| | 164 | |
|---|
| | 165 | <h2 id="dependencies" name="dependencies">5. Dependencies</h2> |
|---|
| | 166 | |
|---|
| | 167 | <p> |
|---|
| | 168 | SOAP4R is written in <a href="http://www.ruby-lang.org">Ruby</a> and |
|---|
| | 169 | aims to use with Ruby application. |
|---|
| | 170 | You have to install Ruby itself. |
|---|
| | 171 | Ruby/1.6 series are required. |
|---|
| | 172 | It does not works on 1.4 series because it does not have class variable. |
|---|
| | 173 | </p> |
|---|
| | 174 | |
|---|
| | 175 | <p> |
|---|
| | 176 | SOAP4R depends on following Ruby modules in |
|---|
| | 177 | <a href="http://www.ruby-lang.org/en/raa.html">RAA</a>. |
|---|
| | 178 | You also have to install these modules to use SOAP4R. |
|---|
| | 179 | </p> |
|---|
| | 180 | |
|---|
| | 181 | <dl> |
|---|
| | 182 | <dt class="path">XML processor</dt> |
|---|
| | 183 | <dd>SOAP4R requires a XML processor package installed. |
|---|
| | 184 | For now, one of following XML processor must be installed |
|---|
| | 185 | (SOAP4R automatically detects it in runtime). |
|---|
| | 186 | <ul> |
|---|
| | 187 | <li><a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=NQXML">[RAA:NQXML]</a></li> |
|---|
| | 188 | <li><a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=XMLParser">[RAA:XMLParser]</a></li> |
|---|
| | 189 | <li><a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=REXML">[RAA:REXML]</a></li> |
|---|
| | 190 | </ul></dd> |
|---|
| | 191 | |
|---|
| | 192 | <dt class="path"><a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=date2">[RAA:date2]</a></dt> |
|---|
| | 193 | <dd>Date and DateTime implementation by Todayoshi Funaba. |
|---|
| | 194 | Note: This module is scheduled to be included in standard distribution instead of lib/date.rb. Ruby/1.7 or later.</dd> |
|---|
| | 195 | |
|---|
| | 196 | <dt class="path"><a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=Devel%3A%3ALogger">[RAA:Devel::Logger]</a></dt> |
|---|
| | 197 | <dd>Logging utility by NaHi.</dd> |
|---|
| | 198 | |
|---|
| | 199 | <dt class="path"><a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=http-access2">[RAA:http-access2]</a></dt> |
|---|
| | 200 | <dd>Yet another HTTP client implementation by NaHi.</dd> |
|---|
| | 201 | |
|---|
| | 202 | <dt class="path"><a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=Uconv">[RAA:Uconv]</a> (optional)</dt> |
|---|
| | 203 | <dd>by Yoshida Masato. |
|---|
| | 204 | It is requred when you want automatic CES conversion between |
|---|
| | 205 | SJIS <-> UTF8 and EUC <-> UTF8. |
|---|
| | 206 | Note: SJIS <-> EUC uses NKF module which is in standard distribution. |
|---|
| | 207 | I will support Iconv for more conversion set. |
|---|
| | 208 | </dd> |
|---|
| | 209 | |
|---|
| | 210 | </dl> |
|---|
| | 211 | |
|---|
| | 212 | <h2 id="samples" name="samples">6. Samples</h2> |
|---|
| | 213 | |
|---|
| | 214 | <p> |
|---|
| | 215 | Samples are in sample/ directory of distribution. |
|---|
| | 216 | Some samples try to connect to public servers. |
|---|
| | 217 | Set environment variable HTTP_PROXY if you are in a firewall and you have |
|---|
| | 218 | http proxy to the internet like; |
|---|
| | 219 | </p> |
|---|
| | 220 | <pre class="path"> |
|---|
| | 221 | $ export HTTP_PROXY=http://myproxyserver:8080 |
|---|
| | 222 | or |
|---|
| | 223 | $ setenv HTTP_PROXY http://myproxyserver:8080 |
|---|
| | 224 | </pre> |
|---|
| | 225 | |
|---|
| | 226 | <dl> |
|---|
| | 227 | <dt class="path">babelfish.rb</dt> |
|---|
| | 228 | <dd>A client for |
|---|
| | 229 | <a href="http://www.xmethods.com/ve2/ViewListing.po?serviceid=14">BabelFish</a> |
|---|
| | 230 | which namespace URI is 'urn:xmethodsBabelFish'. |
|---|
| | 231 | <pre class="path"> |
|---|
| | 232 | $ ./babelfish.rb "Text to translate" [ translation pattern like 'en_fr' ] |
|---|
| | 233 | </pre> |
|---|
| | 234 | </dd> |
|---|
| | 235 | |
|---|
| | 236 | <dt class="path">whois.rb</dt> |
|---|
| | 237 | <dd>A client for |
|---|
| | 238 | <a href="http://www.xmethods.com/ve2/ViewListing.po?serviceid=34">SQLData's WHOIS</a> |
|---|
| | 239 | which namespace URI is 'http://www.SoapClient.com/xml/SQLDataSoap.xsd'. |
|---|
| | 240 | <pre class="path"> |
|---|
| | 241 | $ ./whois.rb ruby-lang.org |
|---|
| | 242 | </pre> |
|---|
| | 243 | CAUTION: This WhoIs server does not handle non-ascii characters correctly. |
|---|
| | 244 | Querying domain which entry contains Japanese or so will hang. Gee. |
|---|
| | 245 | </dd> |
|---|
| | 246 | |
|---|
| | 247 | <dt class="path">digraph.rb</dt> |
|---|
| | 248 | <dd>A sample of SOAP marshalling/unmarshalling. |
|---|
| | 249 | It creates a digraph that contains multi-ref-ed nodes at first |
|---|
| | 250 | and marshals this object to get serialized XML instance. |
|---|
| | 251 | Then reads and unmarshals this XML instance to recover a object |
|---|
| | 252 | which has the same links among nodes in the digraph. |
|---|
| | 253 | </dd> |
|---|
| | 254 | |
|---|
| | 255 | <dt class="path">apacheClient.rb</dt> |
|---|
| | 256 | <dd>SOAP-RPC client sample which connects with demonstration server; |
|---|
| | 257 | stockquote and addressbook in Apache-SOAP. |
|---|
| 135 | | ./apacheClient.rb http://localhsot:2020/xml-soap/rpcrouter/rpcrouter.jsp |
|---|
| 136 | | </pre> |
|---|
| 137 | | </dd> |
|---|
| 138 | | |
|---|
| 139 | | <dt class="path">sample/RAA/*</dt> |
|---|
| | 261 | $ ./apacheClient.rb http://localhsot:2020/xml-soap/rpcrouter/rpcrouter.jsp |
|---|
| | 262 | </pre> |
|---|
| | 263 | </dd> |
|---|
| | 264 | |
|---|
| | 265 | <dt class="path">Calc/</dt> |
|---|
| | 266 | <dd>Calc service contains 2 servers and 2 clients. |
|---|
| | 267 | calc.rb is hosted by server.rb, calc2.rb is hosted by server2.rb. |
|---|
| | 268 | client.rb is for server.rb, client2.rb is for server2.rb. |
|---|
| | 269 | <dl> |
|---|
| | 270 | <dt>calc.rb</dt> |
|---|
| | 271 | <dd>Calc server definition using module and module methods. |
|---|
| | 272 | This module responds 'add', 'sub', 'multi' and 'div'.</dd> |
|---|
| | 273 | <dt>server.rb</dt> |
|---|
| | 274 | <dd>It requires calc.rb and serve module methods of this module. |
|---|
| | 275 | To run this server; |
|---|
| | 276 | <pre class="path"> |
|---|
| | 277 | $ ./server.rb |
|---|
| | 278 | </pre> |
|---|
| | 279 | </dd> |
|---|
| | 280 | <dt>client.rb</dt> |
|---|
| | 281 | <dd>It connects to server.rb and hit methods served by calc.rb. |
|---|
| | 282 | To run the client; |
|---|
| | 283 | <pre class="path"> |
|---|
| | 284 | $ ./client.rb |
|---|
| | 285 | </pre> |
|---|
| | 286 | Is it stacked? Did you run the server.rb?<br/> |
|---|
| | 287 | Turn logger and wireDumpDev in its source on to see logs and wire dumps of |
|---|
| | 288 | SOAP transport.</dd> |
|---|
| | 289 | |
|---|
| | 290 | <dt>calc2.rb</dt> |
|---|
| | 291 | <dd>Calc server definition using class and instance methods. |
|---|
| | 292 | An instance of this class holds its value. Methods 'set' and 'get' is to |
|---|
| | 293 | set/get the value. |
|---|
| | 294 | It also responds to '+', '-', '*', and '/'. |
|---|
| | 295 | </dd> |
|---|
| | 296 | <dt>server2.rb</dt> |
|---|
| | 297 | <dd>It requires calc2.rb and creates an instance of CalcService2 |
|---|
| | 298 | that responds all SOAP requests. |
|---|
| | 299 | Since '+', '-' and so on of calc2.rb are not valid name as an element |
|---|
| | 300 | in XML instance, |
|---|
| | 301 | this sample register the method '+' as 'add', '-' as 'sub', and so on. |
|---|
| | 302 | </dd> |
|---|
| | 303 | <dt>client2.rb</dt> |
|---|
| | 304 | <dd>It connects to server2.rb. |
|---|
| | 305 | Set a value at first and call methods like 'puts objAtServer + 2'.</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.</dd> |
|---|
| | 311 | <dl> |
|---|
| | 312 | <dt>iExchange.rb</dt> |
|---|
| | 313 | <dd>It includes common definitions for client and server of |
|---|
| | 314 | Exchange service. |
|---|
| | 315 | Including only a definition of namespace URI of this service.</dd> |
|---|
| | 316 | <dt>exchange.rb</dt> |
|---|
| | 317 | <dd>Definition of servant class ExchangeService which returns the currency rate |
|---|
| | 318 | after connecting to another site by SOAP to get the real rate. |
|---|
| | 319 | So that this class is the SOAP server for local client and |
|---|
| | 320 | is also a SOAP client for public server. |
|---|
| | 321 | An instance of this class is hosted by server.rb. |
|---|
| | 322 | The instance responds to only 'getRate' which receives two country code |
|---|
| | 323 | such as 'USA' and 'Japan'.</dd> |
|---|
| | 324 | <dt>server.rb</dt> |
|---|
| | 325 | <dd>It requires exchange.rb and creates an instance of ExchangeService |
|---|
| | 326 | that responds all SOAP requests. |
|---|
| | 327 | To run this server; |
|---|
| | 328 | <pre class="path"> |
|---|
| | 329 | $ ./server.rb |
|---|
| | 330 | </pre> |
|---|
| | 331 | </dd> |
|---|
| | 332 | <dt>client.rb</dt> |
|---|
| | 333 | <dd>It connects to server.rb. |
|---|
| | 334 | Turn logger and wireDumpDev in its source on to see logs and wire dumps of |
|---|
| | 335 | SOAP transport. |
|---|
| | 336 | To run the client; |
|---|
| | 337 | <pre class="path"> |
|---|
| | 338 | $ ./client.rb |
|---|
| | 339 | </pre> |
|---|
| | 340 | </dd> |
|---|
| | 341 | </dl> |
|---|
| | 342 | </dd> |
|---|
| | 343 | |
|---|
| | 344 | <dt class="path">SampleStruct/</dt> |
|---|
| | 345 | <dd>A sample to transmit complex structured object which has recursive |
|---|
| | 346 | object reference. |
|---|
| | 347 | <dl> |
|---|
| | 348 | <dt>iSampleStruct.rb</dt> |
|---|
| | 349 | <dd>It includes common definitions for client and server of |
|---|
| | 350 | SampleStruct service. |
|---|
| | 351 | Definition of SampleStruct class and namespace URI of this service.</dd> |
|---|
| | 352 | <dt>sampleStruct.rb</dt> |
|---|
| | 353 | <dd>Definition of servant class SampleStructService. |
|---|
| | 354 | An instance of this class is hosted by server.rb. |
|---|
| | 355 | The instance responds to only 'hi' which receives a SampleStruct and wraps |
|---|
| | 356 | it in the new instance of SampleStruct to return .</dd> |
|---|
| | 357 | <dt>server.rb</dt> |
|---|
| | 358 | <dd>It requires sampleStruct.rb and creates an instance of SampleStructService |
|---|
| | 359 | that responds all SOAP requests. |
|---|
| | 360 | To run this server; |
|---|
| | 361 | <pre class="path"> |
|---|
| | 362 | $ ./server.rb |
|---|
| | 363 | </pre> |
|---|
| | 364 | </dd> |
|---|
| | 365 | <dt>client.rb</dt> |
|---|
| | 366 | <dd>It connects to server.rb. |
|---|
| | 367 | Turn logger and wireDumpDev in its source on to see logs and wire dumps of |
|---|
| | 368 | SOAP transport. |
|---|
| | 369 | To run the client; |
|---|
| | 370 | <pre class="path"> |
|---|
| | 371 | $ ./client.rb |
|---|
| | 372 | </pre> |
|---|
| | 373 | </dd> |
|---|
| | 374 | </dl> |
|---|
| | 375 | </dd> |
|---|
| | 376 | |
|---|
| | 377 | <dt class="path">RAA/</dt> |
|---|
| 147 | | There programs connect with testing RAA server on www.ruby-lang.org. |
|---|
| 148 | | Since the server is under testing phase so stable operation is not expected.</dd> |
|---|
| 149 | | |
|---|
| 150 | | <dt class="path">redist/</dt> |
|---|
| 151 | | <dd>Redistributed programs which SOAP4R is using. |
|---|
| 152 | | I would appriciate to authors of these programs. |
|---|
| 153 | | </dd> |
|---|
| 154 | | |
|---|
| 155 | | <dt class="path">redist/archive/</dt> |
|---|
| 156 | | <dd>Archives. |
|---|
| 157 | | Follow the term of each archive to use these programs. |
|---|
| 158 | | </dd> |
|---|
| 159 | | </dl> |
|---|
| 160 | | |
|---|
| 161 | | <h2 id="uninstall" name="uninstall">3. Uninstall</h2> |
|---|
| 162 | | |
|---|
| 163 | | <p> |
|---|
| 164 | | Delete created files at installation. |
|---|
| 165 | | </p> |
|---|
| 166 | | |
|---|
| 167 | | <pre> |
|---|
| 168 | | ruby -rrbconfig -e 'include Config; puts CONFIG["sitedir"] + "/" + CONFIG["MAJOR"] + "." + CONFIG["MINOR"]' |
|---|
| 169 | | </pre> |
|---|
| 170 | | |
|---|
| 171 | | <p> |
|---|
| 172 | | should dump the installation root directory. |
|---|
| 173 | | Here, check "soap" directory and filename of files in "redist" directory. |
|---|
| 174 | | </p> |
|---|
| 175 | | |
|---|
| 176 | | <h2 id="whats" name="whats">4. What is SOAP4R?</h2> |
|---|
| 177 | | |
|---|
| 178 | | <p> |
|---|
| 179 | | 'SOAP4R' is a Ruby library program to handle |
|---|
| 180 | | <a href="http://www.w3.org/TR/SOAP/">Simple Object Access Protocol (SOAP) 1.1 (W3C Note)</a>. |
|---|
| 181 | | </p> |
|---|
| 182 | | |
|---|
| 183 | | <p> |
|---|
| 184 | | Comments, information such as interoperability between SOAP4R and another implementation are welcomed. |
|---|
| 185 | | Feel free sending mail to |
|---|
| 186 | | <a href="mailto:nakahiro@sarion.co.jp" class="path">nakahiro@sarion.co.jp</a>. |
|---|
| 187 | | </p> |
|---|
| 188 | | |
|---|
| 189 | | <h2 id="dependencies" name="dependencies">5. Dependencies</h2> |
|---|
| 190 | | |
|---|
| 191 | | <p> |
|---|
| 192 | | SOAP4R depends on below programs: |
|---|
| 193 | | </p> |
|---|
| 194 | | |
|---|
| 195 | | <ul> |
|---|
| 196 | | <li>SOAP4R is a |
|---|
| 197 | | <a href="http://www.ruby-lang.org">Ruby</a> |
|---|
| 198 | | library program. |
|---|
| 199 | | You have to install Ruby itself. |
|---|
| 200 | | Ruby/1.6 series are required. |
|---|
| 201 | | It does not works on 1.4 series because of class variable.</li> |
|---|
| 202 | | |
|---|
| 203 | | <li>SOAP4R requires a XML processor package installed. |
|---|
| 204 | | For now, one of following XML processor must be installed |
|---|
| 205 | | (SOAP4R automatically detects it in runtime). |
|---|
| 206 | | <ul> |
|---|
| 207 | | <li><a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=NQXML">NQXML module</a></li> |
|---|
| 208 | | <li><a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=XMLParser">XMLParser module</a></li> |
|---|
| 209 | | </ul></li> |
|---|
| | 386 | Since the server is (still) under testing phase so stable operation is not expected.</dd> |
|---|
| | 387 | |
|---|
| | 388 | <dt class="path">webrick/</dt> |
|---|
| | 389 | <dd>SOAP-RPC server samples which runs with WEBrick. |
|---|
| | 390 | <ul> |
|---|
| | 391 | <li>httpd.rb: HTTP server which soaplet.rb mounts to. |
|---|
| | 392 | It is powered by WEBrick so you must install |
|---|
| | 393 | <a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=WEBrick">[RAA:WEBrick]</a> |
|---|
| | 394 | to run it.</li> |
|---|
| | 395 | <li>soaplet.rb: A bricklet to add a SOAP function to WEBrick. |
|---|
| | 396 | It hosts exchange.rb, sampleStruct.rb below, and it is mounted to httpd.rb |
|---|
| | 397 | to serve ExchangeService and SampleStructService.</li> |
|---|
| | 398 | <li>ExchangeService |
|---|
| | 399 | <dl> |
|---|
| | 400 | <dt>exchange.rb</dt> |
|---|
| | 401 | <dd>A server class definition which returns the currency rate |
|---|
| | 402 | after connecting to another site by SOAP to get the real rate. |
|---|
| | 403 | An instance of this class is instanciated in httpd.rb and this instance |
|---|
| | 404 | respond to each HTTP request.</dd> |
|---|
| | 405 | <dt>exchangeClient.rb</dt> |
|---|
| | 406 | <dd>A client to connect soaplet.rb via SOAP/HTTP to call exchange.rb.</dd> |
|---|
| | 407 | <dt>iExchange.rb</dt> |
|---|
| | 408 | <dd>Common class(type) definitions for server and client.</dd> |
|---|
| | 409 | </dl> |
|---|
| | 410 | </li> |
|---|
| | 411 | |
|---|
| | 412 | <li>SampleStructService |
|---|
| | 413 | <dl> |
|---|
| | 414 | <dt>sampleStruct.rb</dt> |
|---|
| | 415 | <dd>A server class definition which wraps a given struct |
|---|
| | 416 | and returns it. |
|---|
| | 417 | An instance of this class is instanciated in httpd.rb and this instance |
|---|
| | 418 | respond to each HTTP request.</dd> |
|---|
| | 419 | <dt>sampleStructClient.rb</dt> |
|---|
| | 420 | <dd>A client to connect soaplet.rb via SOAP/HTTP to call sampleStruct.rb</dd> |
|---|
| | 421 | <dt>iSampleStruct.rb</dt> |
|---|
| | 422 | <dd>Common class(type) definitions for server and client.</dd> |
|---|
| | 423 | </dl></li> |
|---|
| 239 | | <h2 id="history" name="history">7. History</h2> |
|---|
| | 490 | <h2 id="resources" name="resources">8. Resources</h2> |
|---|
| | 491 | |
|---|
| | 492 | <dl> |
|---|
| | 493 | <dt class="path"><a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=SOAP4R">[RAA:SOAP4R]</a></dt> |
|---|
| | 494 | <dd>I will post a new release to RAA. |
|---|
| | 495 | Check RAA to get a new stable (I hope) version.</dd> |
|---|
| | 496 | |
|---|
| | 497 | <dt class="path"><a href="http://www.ruby-lang.org/~knu/cgi-bin/cvsweb.cgi/lib/soap4r/">CVS</a></dt> |
|---|
| | 498 | <dd>There is the SOAP4R CVS repository in cvs.ruby-lang.org. |
|---|
| | 499 | (Thanks to knu, the maintainer of cvs.ruby-lang.org.) |
|---|
| | 500 | Check here to get most recent (but could be unstable) version.</dd> |
|---|
| | 501 | |
|---|
| | 502 | <dt class="path"><a href="http://www.jin.gr.jp/~nahi/Ruby/SOAP4R/wiki.cgi">SOAP4R Wiki</a></dt> |
|---|
| | 503 | <dd>There is a wiki for SOAP4R, running under |
|---|
| | 504 | <a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=RWiki">[RAA:RWiki]</a>. |
|---|
| | 505 | Feel free to add your comment there. |
|---|
| | 506 | Any comments are welcomed. (as always)</dd> |
|---|
| | 507 | |
|---|
| | 508 | <dt class="path"><a href="http://www.jin.gr.jp/~nahi/Ruby/SOAP4R/wiki.cgi?cmd=view;name=InteropResults">InteropResults</a></dt> |
|---|
| | 509 | <dd>Test results of <a href="http://www.whitemesa.com/interop.htm">SOAPBuilders Interoperability Lab "Round 2"</a>.</dd> |
|---|
| | 510 | |
|---|
| | 511 | </dl> |
|---|
| | 512 | |
|---|
| | 513 | <h2 id="history" name="history">9. History</h2> |
|---|