summaryrefslogtreecommitdiff
path: root/sample/soap/scopesample
diff options
context:
space:
mode:
author(no author) <(no author)@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-12-20 14:41:10 +0000
committer(no author) <(no author)@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-12-20 14:41:10 +0000
commit330a8e51c56f5386753f55ba8e656a62471a36ba (patch)
tree9baa48b1a2dfad4b0d1d9580248177be8c0e9802 /sample/soap/scopesample
parent50651e957a10a0cbc782841116ae576018a72160 (diff)
This commit was manufactured by cvs2svn to create branch 'ruby_1_8'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'sample/soap/scopesample')
-rw-r--r--sample/soap/scopesample/client.rb34
-rw-r--r--sample/soap/scopesample/httpd.rb22
-rw-r--r--sample/soap/scopesample/samplehttpd.conf2
-rw-r--r--sample/soap/scopesample/servant.rb18
-rwxr-xr-xsample/soap/scopesample/server.cgi29
-rw-r--r--sample/soap/scopesample/server.rb20
6 files changed, 125 insertions, 0 deletions
diff --git a/sample/soap/scopesample/client.rb b/sample/soap/scopesample/client.rb
new file mode 100644
index 0000000000..009fdf1919
--- /dev/null
+++ b/sample/soap/scopesample/client.rb
@@ -0,0 +1,34 @@
+require 'soap/rpc/driver'
+
+server = ARGV.shift || 'http://localhost:7000/'
+# server = 'http://localhost:8808/server.cgi'
+
+# client which accesses application scope servant.
+app = SOAP::RPC::Driver.new(server,
+ 'http://tempuri.org/applicationScopeService')
+app.add_method('push', 'value')
+app.add_method('pop')
+
+# client which accesses request scope servant must send SOAPAction to identify
+# the service.
+req = SOAP::RPC::Driver.new(server,
+ 'http://tempuri.org/requestScopeService')
+req.add_method_with_soapaction('push',
+ 'http://tempuri.org/requestScopeService', 'value')
+req.add_method_with_soapaction('pop',
+ 'http://tempuri.org/requestScopeService')
+
+# exec
+app.push(1)
+app.push(2)
+app.push(3)
+p app.pop
+p app.pop
+p app.pop
+
+req.push(1)
+req.push(2)
+req.push(3)
+p req.pop
+p req.pop
+p req.pop
diff --git a/sample/soap/scopesample/httpd.rb b/sample/soap/scopesample/httpd.rb
new file mode 100644
index 0000000000..5f58c7e14a
--- /dev/null
+++ b/sample/soap/scopesample/httpd.rb
@@ -0,0 +1,22 @@
+#!/usr/bin/env ruby
+
+require 'webrick'
+require 'soap/property'
+
+docroot = "."
+port = 8808
+if opt = SOAP::Property.loadproperty("samplehttpd.conf")
+ docroot = opt["docroot"]
+ port = Integer(opt["port"])
+end
+
+s = WEBrick::HTTPServer.new(
+ :BindAddress => "0.0.0.0",
+ :Port => port,
+ :DocumentRoot => docroot,
+ :CGIPathEnv => ENV['PATH']
+)
+trap(:INT) do
+ s.shutdown
+end
+s.start
diff --git a/sample/soap/scopesample/samplehttpd.conf b/sample/soap/scopesample/samplehttpd.conf
new file mode 100644
index 0000000000..85e9995021
--- /dev/null
+++ b/sample/soap/scopesample/samplehttpd.conf
@@ -0,0 +1,2 @@
+docroot = .
+port = 8808
diff --git a/sample/soap/scopesample/servant.rb b/sample/soap/scopesample/servant.rb
new file mode 100644
index 0000000000..5076050076
--- /dev/null
+++ b/sample/soap/scopesample/servant.rb
@@ -0,0 +1,18 @@
+class Servant
+ def self.create
+ new
+ end
+
+ def initialize
+ STDERR.puts "Servant created."
+ @task = []
+ end
+
+ def push(value)
+ @task.push(value)
+ end
+
+ def pop
+ @task.pop
+ end
+end
diff --git a/sample/soap/scopesample/server.cgi b/sample/soap/scopesample/server.cgi
new file mode 100755
index 0000000000..ebe13eb131
--- /dev/null
+++ b/sample/soap/scopesample/server.cgi
@@ -0,0 +1,29 @@
+#!/usr/bin/env ruby
+
+require 'soap/rpc/cgistub'
+require 'servant'
+
+class Server < SOAP::RPC::CGIStub
+ class DummyServant
+ def push(value)
+ "Not supported"
+ end
+
+ def pop
+ "Not supported"
+ end
+ end
+
+ def initialize(*arg)
+ super
+ add_rpc_servant(Servant.new, 'http://tempuri.org/requestScopeService')
+
+ # Application scope servant is not supported in CGI environment.
+ # See server.rb to support application scope servant.
+ dummy = DummyServant.new
+ add_method_with_namespace('http://tempuri.org/applicationScopeService', dummy, 'push', 'value')
+ add_method_with_namespace('http://tempuri.org/applicationScopeService', dummy, 'pop')
+ end
+end
+
+status = Server.new('Server', nil).start
diff --git a/sample/soap/scopesample/server.rb b/sample/soap/scopesample/server.rb
new file mode 100644
index 0000000000..6b87b74c2f
--- /dev/null
+++ b/sample/soap/scopesample/server.rb
@@ -0,0 +1,20 @@
+#!/usr/bin/env ruby
+
+require 'soap/rpc/standaloneServer'
+require 'servant'
+
+class Server < SOAP::RPC::StandaloneServer
+ def initialize(*arg)
+ super
+ add_rpc_servant(Servant.new, 'http://tempuri.org/applicationScopeService')
+ add_rpc_request_servant(Servant, 'http://tempuri.org/requestScopeService')
+ end
+end
+
+if $0 == __FILE__
+ server = Server.new('Server', nil, '0.0.0.0', 7000)
+ trap(:INT) do
+ server.shutdown
+ end
+ server.start
+end