Пример #1
0
def main():
    host = DEFAULT_HOST
    port = DEFAULT_PORT

    try:
        opts, args = getopt.getopt(sys.argv[1:], '?h:p:',
                                   ['help', 'host', 'port'])

        for opt, arg in opts:
            if opt in ('-?', '--help'):
                usage()
            elif opt in ('-h', '--host'):
                host = arg
            elif opt in ('-p', '--port'):
                port = int(arg)
            else:
                raise AttributeError, \
                     "Recognized but unimplemented option `%s'" % opt
    except SystemExit:
        raise
    except:
        usage(sys.exc_info()[1])

    server = SOAP.SOAPServer((host, port))

    server.registerFunction(whichToolkit, namespace)
    server.registerFunction(countTheEntities)
    server.registerFunction(easyStructTest)
    server.registerFunction(echoStructTest)
    server.registerFunction(manyTypesTest)
    server.registerFunction(moderateSizeArrayCheck)
    server.registerFunction(nestedStructTest)
    server.registerFunction(simpleStructReturnTest)

    server.serve_forever()
Пример #2
0
def main():
    host = DEFAULT_HOST
    port = None
    ssl = 0

    try:
        opts = '?h:p:'
        args = ['help', 'host', 'port']

        if SOAP.Config.SSLserver:
            opts += 's'
            args += ['ssl']

        opts, args = getopt.getopt(sys.argv[1:], opts, args)

        for opt, arg in opts:
            if opt in ('-?', '--help'):
                usage()
            elif opt in ('-h', '--host'):
                host = arg
            elif opt in ('-p', '--port'):
                port = int(arg)
            elif opt in ('-s', '--ssl'):
                ssl = 1
            else:
                raise AttributeError, \
                     "Recognized but unimplemented option `%s'" % opt
    except SystemExit:
        raise
    except:
        usage(sys.exc_info()[1])

    if port == None:
        port = [DEFAULT_HTTP_PORT, DEFAULT_HTTPS_PORT][ssl]

    if ssl:
        ssl_context = SSL.Context()
        ssl_context.load_cert('server.pem')
    else:
        ssl_context = None

    server = SOAP.SOAPServer((host, port),
                             namespace=namespace,
                             ssl_context=ssl_context)

    server.registerFunction(echoFloat)
    server.registerFunction(echoFloatArray)
    server.registerFunction(echoInteger)
    server.registerFunction(echoIntegerArray)
    server.registerFunction(echoString)
    server.registerFunction(echoStringArray)
    server.registerFunction(echoStruct)
    server.registerFunction(echoStructArray)
    server.registerFunction(echoVoid)
    server.registerFunction(echoDate)
    server.registerFunction(echoBase64)

    server.serve_forever()
        return "(Buys, RequestForQuote(s),SimpleBuy(s), Ping(s)) = " + \
               repr( (NUMBUYS,NUMREQUESTS,NUMSIMPLEBUYS, NUMPINGS) )
    else:
        raise ValueError, "not the right string"


if __name__ == "__main__":
    if len(sys.argv) > 1:
        try:
            port = int(sys.argv[1])
            if port not in range(2000, 15000): raise ValueError
        except:
            print "port must be a number between 2000 and 15000"
            sys.exit(1)
    else:
        port = 9000
    namespace = "http://www.soapinterop.org/Bid"
    server = SOAP.SOAPServer(('zoo', port))

    server.registerKWFunction(SimpleBuy, namespace)
    server.registerKWFunction(RequestForQuote, namespace)
    server.registerKWFunction(Buy, namespace)
    server.registerKWFunction(Ping, namespace)
    server.registerKWFunction(Monitor, namespace)
    server.registerKWFunction(Clear, namespace)

    try:
        server.serve_forever()
    except KeyboardInterrupt:
        pass

class MyRequestHandler(SOAP.SOAPRequestHandler):

    def do_GET(self):
        #print dir(self)
        print self.headers
        # look at "Accept: " lines and if they want html, then
        # redirect them to semwalker?   Nah.....
        self.send_response(200)
        self.send_header("Content-type", "application/rdf+xml")
        self.end_headers()
        self.wfile.write("<!-- Run semwalker to look at this! -->")

    def do_HEAD(self):
        self.send_response(200)
        self.send_header("Content-type", "text/plain")
        self.send_header("X-Random-Message", "I love you!")
        self.end_headers()



server = SOAP.SOAPServer(("localhost", 0), MyRequestHandler)
port = server.socket.getsockname()[1]
print '# waiting at port', port
server.registerFunction(query)
server.registerFunction(queryAbout)

maitred.readyAtPort(port)
server.serve_forever()