1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
#!/usr/bin/env ruby
require 'GoogleSearchServant.rb'
require 'soap/standaloneServer'
class GoogleSearchPort
require 'soap/rpcUtils'
MappingRegistry = SOAP::RPCUtils::MappingRegistry.new
MappingRegistry.set(
GoogleSearchResult,
::SOAP::SOAPStruct,
::SOAP::RPCUtils::MappingRegistry::TypedStructFactory,
[ XSD::QName.new( "urn:GoogleSearch", "GoogleSearchResult" ) ]
)
MappingRegistry.set(
ResultElementArray,
::SOAP::SOAPArray,
::SOAP::RPCUtils::MappingRegistry::TypedArrayFactory,
[ XSD::QName.new( "urn:GoogleSearch", "ResultElement" ) ]
)
MappingRegistry.set(
DirectoryCategoryArray,
::SOAP::SOAPArray,
::SOAP::RPCUtils::MappingRegistry::TypedArrayFactory,
[ XSD::QName.new( "urn:GoogleSearch", "DirectoryCategory" ) ]
)
MappingRegistry.set(
ResultElement,
::SOAP::SOAPStruct,
::SOAP::RPCUtils::MappingRegistry::TypedStructFactory,
[ XSD::QName.new( "urn:GoogleSearch", "ResultElement" ) ]
)
MappingRegistry.set(
DirectoryCategory,
::SOAP::SOAPStruct,
::SOAP::RPCUtils::MappingRegistry::TypedStructFactory,
[ XSD::QName.new( "urn:GoogleSearch", "DirectoryCategory" ) ]
)
Methods = [
[ "doGetCachedPage", "doGetCachedPage", [
[ "in", "key",
[ SOAP::SOAPString ] ],
[ "in", "url",
[ SOAP::SOAPString ] ],
[ "retval", "return",
[ SOAP::SOAPBase64 ] ] ],
"urn:GoogleSearchAction", "urn:GoogleSearch" ],
[ "doSpellingSuggestion", "doSpellingSuggestion", [
[ "in", "key",
[ SOAP::SOAPString ] ],
[ "in", "phrase",
[ SOAP::SOAPString ] ],
[ "retval", "return",
[ SOAP::SOAPString ] ] ],
"urn:GoogleSearchAction", "urn:GoogleSearch" ],
[ "doGoogleSearch", "doGoogleSearch", [
[ "in", "key",
[ SOAP::SOAPString ] ],
[ "in", "q",
[ SOAP::SOAPString ] ],
[ "in", "start",
[ SOAP::SOAPInt ] ],
[ "in", "maxResults",
[ SOAP::SOAPInt ] ],
[ "in", "filter",
[ SOAP::SOAPBoolean ] ],
[ "in", "restrict",
[ SOAP::SOAPString ] ],
[ "in", "safeSearch",
[ SOAP::SOAPBoolean ] ],
[ "in", "lr",
[ SOAP::SOAPString ] ],
[ "in", "ie",
[ SOAP::SOAPString ] ],
[ "in", "oe",
[ SOAP::SOAPString ] ],
[ "retval", "return",
[ ::SOAP::SOAPStruct, "urn:GoogleSearch", "GoogleSearchResult" ] ] ],
"urn:GoogleSearchAction", "urn:GoogleSearch" ]
]
end
class App < SOAP::StandaloneServer
def initialize( *arg )
super( *arg )
servant = GoogleSearchPort.new
GoogleSearchPort::Methods.each do | methodNameAs, methodName, params, soapAction, namespace |
addMethodWithNSAs( namespace, servant, methodName, methodNameAs, params, soapAction )
end
self.mappingRegistry = GoogleSearchPort::MappingRegistry
setSevThreshold( Devel::Logger::ERROR )
end
end
# Change listen port.
App.new( 'app', nil, '0.0.0.0', 10080 ).start
|