2009-03-24 7 views
1

Ich habe die Tutorials für die Einrichtung von Apache mit mod_wsgi zur Schnittstelle cherrypy verfolgt und eine Seite davon ausgeführt. Das ist meine "myapp.wsgi", und die Eröffnung http://localhost/ funktioniert super. Öffnen http://localhost/ape/ gibt tatsächlich den Text anstelle einer Soap-Antwort zurück, und http://localhost/ape/service.wsdl gibt einen 500 HTTP-Fehlercode zurück. Was mache ich falsch, wenn ich einen so einfachen SOAP-Dienst ausführen soll? Wie kann ich eine gültige WSDL zurückgeben? Mein Code folgt untersoaplib mit mod_wsgi/cherrypy

Prost

Nik

import atexit, threading, cherrypy,sys 
from soaplib.wsgi_soap import SimpleWSGISoapApp 
from soaplib.service import soapmethod 
from soaplib.serializers.primitive import String, Integer, Array 

sys.stdout = sys.stderr 
cherrypy.config.update({'environment': 'embedded'}) 

class Root(object): 
    def index(self): 
     return 'Hello World!' 
    index.exposed = True 

    @soapmethod(_returns=String) 
    def ape(self): 
     return 'Ape!!' 
    ape.exposed = True 

application = cherrypy.Application(Root(), None) 

Antwort

1

ich das selbst nur getestet, indem die letzte Zeile der Datei ersetzt mit

cherrypy.quickstart(Root(), "/") 

und es funktionierte für mich ganz gut. Ich schlage vor, dies zu versuchen und zu sehen, ob es für dich funktioniert; Wenn dies der Fall ist, wissen Sie, dass es sich um ein Problem bei der Ausführung unter Apache/mod_wsgi handelt und nicht um ein inhärentes Problem mit Ihrem Code.

+0

Hallo Eli, vielen Dank für Ihre Zeit. Konnten Sie /ape/service.wsdl abrufen? – niklassaers

1

Eli hat Recht; Es reicht nicht aus, nur eine Anwendungsinstanz zu erstellen. Sie müssen es auf cherrypy.tree mounten, was quickstart() für Sie tut.