summaryrefslogtreecommitdiff
path: root/lib/wsdl/soap/standaloneServerStubCreator.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/wsdl/soap/standaloneServerStubCreator.rb')
-rw-r--r--lib/wsdl/soap/standaloneServerStubCreator.rb16
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/wsdl/soap/standaloneServerStubCreator.rb b/lib/wsdl/soap/standaloneServerStubCreator.rb
index 34bcfdbba9..779139a5f4 100644
--- a/lib/wsdl/soap/standaloneServerStubCreator.rb
+++ b/lib/wsdl/soap/standaloneServerStubCreator.rb
@@ -57,9 +57,13 @@ Methods = [
<<-EOD
super(*arg)
servant = #{class_name}.new
- #{class_name}::Methods.each do |name_as, name, params, soapaction, ns|
- qname = XSD::QName.new(ns, name_as)
- @soaplet.app_scope_router.add_method(servant, qname, soapaction, name, params)
+ #{class_name}::Methods.each do |name_as, name, param_def, soapaction, namespace, style|
+ qname = XSD::QName.new(namespace, name_as)
+ if style == :document
+ @soaplet.app_scope_router.add_document_method(servant, qname, soapaction, name, param_def)
+ else
+ @soaplet.app_scope_router.add_rpc_method(servant, qname, soapaction, name, param_def)
+ end
end
self.mapping_registry = #{class_name}::MappingRegistry
EOD
@@ -68,7 +72,11 @@ Methods = [
if $0 == __FILE__
# Change listen port.
- #{class_name}App.new('app', nil, '0.0.0.0', 10080).start
+ server = #{class_name}App.new('app', nil, '0.0.0.0', 10080)
+ trap(:INT) do
+ server.shutdown
+ end
+ server.start
end
EOD
end