diff --git a/bin/mutalyzer-soap-service.wsgi b/bin/mutalyzer-soap-service.wsgi index 5467bb910f1a57a0c3d923e38fb15c7dfd25f8f6..31f7b79770a3187081041b2a84018f3e7af49fe7 100755 --- a/bin/mutalyzer-soap-service.wsgi +++ b/bin/mutalyzer-soap-service.wsgi @@ -23,15 +23,14 @@ To start the built-in HTTP server on port 8081: import sys from wsgiref.simple_server import make_server +from spyne.server.wsgi import WsgiApplication from mutalyzer.services import soap DEFAULT_PORT = 8081 -# Unfortunately we cannot instantiate wsgi.Application here, see the note -# near the bottom of mutalyzer/services/soap.py. -application = soap.wsgi_application +application = WsgiApplication(soap.application) if __name__ == '__main__': diff --git a/mutalyzer/services/soap.py b/mutalyzer/services/soap.py index 715a2456c12734c4941ebe17104656fc5425b763..5674e6d240e7468269c55acb1cb66b62323ce1e3 100644 --- a/mutalyzer/services/soap.py +++ b/mutalyzer/services/soap.py @@ -5,7 +5,6 @@ Mutalyzer SOAP/1.1 web service. from spyne.application import Application from spyne.protocol.soap import Soap11 -from spyne.server.wsgi import WsgiApplication import mutalyzer from mutalyzer.services import rpc @@ -16,11 +15,3 @@ application = Application([rpc.MutalyzerService], tns=mutalyzer.SOAP_NAMESPACE, in_protocol=Soap11(validator='lxml'), out_protocol=Soap11(), name='Mutalyzer') - - -# Below we define WSGI applications for use with e.g. Apache/mod_wsgi. -# Note: We would like to create the wsgi.Application instance only in the -# bin/mutalyzer-webservice.wsgi script, but unfortunately this breaks the -# get_interface_document method of spyne which we use to generate API -# documentation in website.py. -wsgi_application = WsgiApplication(application) diff --git a/mutalyzer/website.py b/mutalyzer/website.py index bb1787fe2c9022a57fa29a66e15dd4475da8383d..138175231e88ccce507db12f60f7ac75d42c9388 100644 --- a/mutalyzer/website.py +++ b/mutalyzer/website.py @@ -30,7 +30,7 @@ import pkg_resources from cStringIO import StringIO from simpletal import simpleTALES from simpletal import simpleTAL -from spyne.interface.wsdl import Wsdl11 +from spyne.server.http import HttpBase import mutalyzer from mutalyzer import util @@ -1541,9 +1541,11 @@ class SoapApi: @todo: Cache this transformation. """ url = web.ctx.homedomain + web.ctx.homepath + SERVICE_SOAP_LOCATION - wsdl = Wsdl11(soap.application.interface) - wsdl.build_interface_document(url) - wsdl_handle = StringIO(wsdl.get_interface_document()) + + soap_server = HttpBase(soap.application) + soap_server.doc.wsdl11.build_interface_document(url) + wsdl_handle = StringIO(soap_server.doc.wsdl11.get_interface_document()) + xsl_handle = open(os.path.join( pkg_resources.resource_filename('mutalyzer', 'templates'), 'wsdl-viewer.xsl'), 'r')