Class: SOAP::RPC::HTTPServer
- Includes:
- AttrProxy
- Defined in:
- lib/soap/rpc/httpserver.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#default_namespace ⇒ Object
Returns the value of attribute default_namespace.
-
#server ⇒ Object
readonly
Returns the value of attribute server.
Instance Method Summary collapse
- #add_document_method(obj, soapaction, name, req_qnames, res_qnames) ⇒ Object
- #add_document_operation(receiver, soapaction, name, param_def, opt = {}) ⇒ Object
- #add_document_request_operation(factory, soapaction, name, param_def, opt = {}) ⇒ Object
- #add_headerhandler(obj) ⇒ Object (also: #add_rpc_headerhandler)
- #add_request_headerhandler(factory) ⇒ Object
-
#add_rpc_method(obj, name, *param) ⇒ Object
(also: #add_method)
method entry interface.
- #add_rpc_method_as(obj, name, name_as, *param) ⇒ Object (also: #add_method_as)
- #add_rpc_operation(receiver, qname, soapaction, name, param_def, opt = {}) ⇒ Object
- #add_rpc_request_operation(factory, qname, soapaction, name, param_def, opt = {}) ⇒ Object
-
#add_rpc_request_servant(factory, namespace = @default_namespace) ⇒ Object
servant entry interface.
- #add_rpc_servant(obj, namespace = @default_namespace) ⇒ Object
- #authenticator ⇒ Object
- #authenticator=(authenticator) ⇒ Object
- #filterchain ⇒ Object
-
#initialize(config) ⇒ HTTPServer
constructor
A new instance of HTTPServer.
- #on_init ⇒ Object
- #shutdown ⇒ Object
- #status ⇒ Object
Methods included from AttrProxy
Constructor Details
#initialize(config) ⇒ HTTPServer
Returns a new instance of HTTPServer.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/soap/rpc/httpserver.rb', line 33 def initialize(config) actor = config[:SOAPHTTPServerApplicationName] || self.class.name super(actor) @default_namespace = config[:SOAPDefaultNamespace] @webrick_config = config.dup self.level = Logger::Severity::ERROR # keep silent by default @webrick_config[:Logger] ||= @log @log = @webrick_config[:Logger] # sync logger of App and HTTPServer @router = ::SOAP::RPC::Router.new(actor) @soaplet = ::SOAP::RPC::SOAPlet.new(@router) on_init @server = WEBrick::HTTPServer.new(@webrick_config) @server.mount('/soaprouter', @soaplet) if wsdldir = config[:WSDLDocumentDirectory] @server.mount('/wsdl', WEBrick::HTTPServlet::FileHandler, wsdldir) end @server.mount('/', @soaplet) end |
Instance Attribute Details
#default_namespace ⇒ Object
Returns the value of attribute default_namespace.
26 27 28 |
# File 'lib/soap/rpc/httpserver.rb', line 26 def default_namespace @default_namespace end |
#server ⇒ Object (readonly)
Returns the value of attribute server.
25 26 27 |
# File 'lib/soap/rpc/httpserver.rb', line 25 def server @server end |
Instance Method Details
#add_document_method(obj, soapaction, name, req_qnames, res_qnames) ⇒ Object
117 118 119 120 |
# File 'lib/soap/rpc/httpserver.rb', line 117 def add_document_method(obj, soapaction, name, req_qnames, res_qnames) param_def = SOAPMethod.create_doc_param_def(req_qnames, res_qnames) @router.add_document_operation(obj, soapaction, name, param_def) end |
#add_document_operation(receiver, soapaction, name, param_def, opt = {}) ⇒ Object
130 131 132 |
# File 'lib/soap/rpc/httpserver.rb', line 130 def add_document_operation(receiver, soapaction, name, param_def, opt = {}) @router.add_document_operation(receiver, soapaction, name, param_def, opt) end |
#add_document_request_operation(factory, soapaction, name, param_def, opt = {}) ⇒ Object
134 135 136 |
# File 'lib/soap/rpc/httpserver.rb', line 134 def add_document_request_operation(factory, soapaction, name, param_def, opt = {}) @router.add_document_request_operation(factory, soapaction, name, param_def, opt) end |
#add_headerhandler(obj) ⇒ Object Also known as: add_rpc_headerhandler
93 94 95 |
# File 'lib/soap/rpc/httpserver.rb', line 93 def add_headerhandler(obj) @router.add_headerhandler(obj) end |
#add_request_headerhandler(factory) ⇒ Object
89 90 91 |
# File 'lib/soap/rpc/httpserver.rb', line 89 def add_request_headerhandler(factory) @router.add_request_headerhandler(factory) end |
#add_rpc_method(obj, name, *param) ⇒ Object Also known as: add_method
method entry interface
104 105 106 |
# File 'lib/soap/rpc/httpserver.rb', line 104 def add_rpc_method(obj, name, *param) add_rpc_method_as(obj, name, name, *param) end |
#add_rpc_method_as(obj, name, name_as, *param) ⇒ Object Also known as: add_method_as
109 110 111 112 113 114 |
# File 'lib/soap/rpc/httpserver.rb', line 109 def add_rpc_method_as(obj, name, name_as, *param) qname = XSD::QName.new(@default_namespace, name_as) soapaction = nil param_def = SOAPMethod.derive_rpc_param_def(obj, name, *param) @router.add_rpc_operation(obj, qname, soapaction, name, param_def) end |
#add_rpc_operation(receiver, qname, soapaction, name, param_def, opt = {}) ⇒ Object
122 123 124 |
# File 'lib/soap/rpc/httpserver.rb', line 122 def add_rpc_operation(receiver, qname, soapaction, name, param_def, opt = {}) @router.add_rpc_operation(receiver, qname, soapaction, name, param_def, opt) end |
#add_rpc_request_operation(factory, qname, soapaction, name, param_def, opt = {}) ⇒ Object
126 127 128 |
# File 'lib/soap/rpc/httpserver.rb', line 126 def add_rpc_request_operation(factory, qname, soapaction, name, param_def, opt = {}) @router.add_rpc_request_operation(factory, qname, soapaction, name, param_def, opt) end |
#add_rpc_request_servant(factory, namespace = @default_namespace) ⇒ Object
servant entry interface
81 82 83 |
# File 'lib/soap/rpc/httpserver.rb', line 81 def add_rpc_request_servant(factory, namespace = @default_namespace) @router.add_rpc_request_servant(factory, namespace) end |
#add_rpc_servant(obj, namespace = @default_namespace) ⇒ Object
85 86 87 |
# File 'lib/soap/rpc/httpserver.rb', line 85 def add_rpc_servant(obj, namespace = @default_namespace) @router.add_rpc_servant(obj, namespace) end |
#authenticator ⇒ Object
71 72 73 |
# File 'lib/soap/rpc/httpserver.rb', line 71 def authenticator @soaplet.authenticator end |
#authenticator=(authenticator) ⇒ Object
75 76 77 |
# File 'lib/soap/rpc/httpserver.rb', line 75 def authenticator=(authenticator) @soaplet.authenticator = authenticator end |
#filterchain ⇒ Object
98 99 100 |
# File 'lib/soap/rpc/httpserver.rb', line 98 def filterchain @router.filterchain end |
#on_init ⇒ Object
53 54 55 |
# File 'lib/soap/rpc/httpserver.rb', line 53 def on_init # do extra initialization in a derived class if needed. end |
#shutdown ⇒ Object
61 62 63 64 65 66 67 68 69 |
# File 'lib/soap/rpc/httpserver.rb', line 61 def shutdown if @server @server.shutdown while (@server.listeners.length > 0) && (@server.tokens.length > 0) && (@server.status != :Stop) sleep(0.25) end sleep(0.25) # One more for good measure. end end |
#status ⇒ Object
57 58 59 |
# File 'lib/soap/rpc/httpserver.rb', line 57 def status @server.status if @server end |